======类
简单类
ruby> class Mammal
| def initialize
| end
| def breathe
| print "inhale and exhale\n"
| end
| end
nil
继承,用<
ruby> class Cat<Mammal
| def speak
| print "Meow\n"
| end
| end
创建对象
ruby> pochi = Cat.new
#<Cat:0xbcb90>
调用方法
ruby> pochi.speak
Bow Wow
nil
成员变量
全局变量 $
实变量 @
局部变量 小写或者_ 打头
常量 大写字母开头
存取器
Shortcut缩写 Effect等同于
attr_reader :v def v; @v; end
attr_writer :v def v=(value); @v=value; end
attr_accessor :v attr_reader :v; attr_writer :v
attr_accessor :v, :w attr_accessor :v; attr_accessor :w
======方法
参数应在一对括号内
object.method(arg1, arg2)
括号可以省掉.
object.method arg1, arg2
特殊变量self;
self.method_name(args...)
和这一样
method_name(args...)
特殊成员方法inspect方法,类似C#的ToString
ruby> class Fruit
| def inspect
| "a fruit of the " + @kind + " variety"
| end
| end
nil
ruby> f2
"a fruit of the banana variety"
构造方法initialize,用super调用父类
ruby> class Cat<Mammal
| def initialize
| super
| print "Meow\n"
| end
| end
=====Cool 迭代之yield,retry
yield 让流程可以使用Block
ruby> def repeat(num)
| while num > 0
| yield
| num -= 1
| end
| end
nil
ruby> repeat(3) { print "foo\n" }
foo
foo
foo
nil
案例:有while相同作用的迭代器
ruby> def WHILE(cond)
| return if not cond
| yield
| retry
| end
nil
ruby> i=0; WHILE(i<3) { print i; i+=1 }
012 nil
retry语句从头执行迭代.这是一个死循环,到2就重新执行
ruby> for i in 0..4
| print i
| if i == 2 then
| retry
| end
| end;
===== 迭代
字符串迭代
each_byte
> "abc".each_byte{|c| printf "%c", c}
abc
each_line.
ruby> "a\nb\nc".each_line{|l| print l}
a
b
c
=====数组
定义数组:方括号里列出元素,不限定类型
ruby> ary = [1, 2, "3"]
[1, 2, "3"]
数组加
ruby> ary + ["foo", "bar"]
[1, 2, "3", "foo", "bar"]
数组乘
ruby> ary * 2
[1, 2, "3", 1, 2, "3"]
访问
ruby> ary[0]
1
ruby> ary[0..1]
[1, 2]
ruby> ary[-2]
2
数组字符串转换
ruby> str = ary.join(":")
"1:2:3"
ruby> str.split(":")
["1", "2", "3"]
=============哈希表
定义
ruby> h = {1 => 2, "2" => "4"}
{1=>2, "2"=>"4"}
使用
ruby> h[1]
2
ruby> h["2"]
"4"
ruby> h[5]
nil
ruby> h[5] = 10 # appending value
10
ruby> h
{5=>10, 1=>2, "2"=>"4"}
删除
ruby> h.delete 1 # deleting value
2
==============字符串
单引号,双引号都可以做字符串定界符
> "abc"
> 'abc'
字符串可以跨行
"foo
bar"
双引号的字符串允许字符转义(Escape),用#{}内嵌表达式.
>"\n"
>"name="1000copy"
> #{name}"
单引号字符串保持原字符串
ruby> print 'a\nb\n'
a\nb\nc
字符串乘
> "foo" * 2
"foofoo"
抽取字符,返回ASCII
ruby> word[0]
102 # 102 is ASCII code of `f'
ruby> word[-1]
111 # 111 is ASCII code of `o'
提取子串:
ruby> herb = "parsley"
"parsley"
ruby> herb[0,1]
"p"
ruby> herb[-2,2]
"ey"
检查相等:
ruby> "foo" == "foo"
true
正则表达式
// 表达为regexp
/\w/ 字母或数字
/\s/ 非空
optimize my sight——from Refactor to DB Turning
Blog :http://1000copy.iteye.com
MicroBlog : t.sina.com.cn/1000copy
club page :http://www.cdsoftwareclub.com
分享到:
相关推荐
mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe
ruby-debug-ide-0.3.1.gem
ruby-1.8.7-p72-i386-mswin32.zip
ruby-enterprise-1.8.6-20090201.tar for linux
Ruby 面向对象设计实践--2013年
RunkeeperHealthGraphAPI的Ruby包装器-Ruby-下载
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
ruby-debug-ide-0.4.16.gem
DEV ruby x64 V2.5.1-1 便携版 DEV ruby x64 V2.5.1-1 Portable
XiaoMi-Ruby-15.6-UMA-only-master.zip
0积分下载,不允许系统调分-20211115 ruby官方安装包
ruby-oo-fundamentals-attribute-accessors-lab-wdc01-seng-ft-060120-源码.rar
ruby-oo-fundamentals-attribute-accessors-lab-sea01-seng-ft-071320-master.rar
Server Metaprogramming Ruby-Pyton-Groovy-Haskell-Erlang.pdf
ruby-kaigi-notes-源码.rar
ruby-couch-db-源码.rar
DEV ruby x64 V2.5.1-1-nodevkit 便携版 DEV ruby x64 V2.5.1-1-nodevkit Portable
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
重构--Ruby实现,Martin-Fowler参与编写,质量很高
ruby on rose开发文档-开发 基本包含所有类和函数方法 有助于ruby开发