贫道今天开始复习ruby了。。
那些配置环境的废话就不多说了 直接进入ruby语言的特性学习。
如何子弟工艺方法:
def sayGoodnight(name)
result = "Goodnight, #{name}"
return result
end
其中取传进来的参数用“#{参数名}” 就ok。
变量格式:
本地变量 可以直接是英文字母;---这种变量只能在类本身访问 默认是private的 想要他被外界访问 要变成类变量。
全局变量 以$开头。
对象 以@开头
类对象 以@@开头
数组与哈希表
ruby的数据可以包含多种数据类型,其实因为ruby中存在就是对象 所以它装的是对象就行了。
新建的时候可以直接初始化里面的数据
a = [ 1, 'cat', 3.14 ]
也可以新建一个空数组
empty1 = []
empty2 = Array.new
数组的元素还可以放数组 太tmd松散了。。似乎丢什么鬼东西进去都行。
也可以直接用字符来填充数组,不过需要转义 %W
a = %w{ ant bee cat dog elk }
哈希表
新建和初始化:每一个以逗号隔开
instSection = {
'cello' => 'string',
'clarinet' => 'woodwind',
'drum' => 'percussion',
'oboe' => 'woodwind',
'trumpet' => 'brass',
'violin' => 'string'
}
hashname = {
'key1' => 'value1' ,
'key2' => 'value132' ,
'key3' => 'value1' ,
'key4' => 'value14' ,
'key5' => 'value15'
}
访问:hashname['keyname'] 当所访问的key是空则会返回一个空nil回来
if-else 控制
传统的if else 如下:
if 条件表达式
业务
elseif
业务
else
业务
end
不要忘记‘end’结束标记。
ruby中还可以写成: do if 条件
while循环
while 条件1 and 条件2
业务
end
字符串操作
=~ 是一个查找字符串起始位置的操作。。
line =~ /Perl|Python/
查line字符串中 包含Perl或者python的开始位置。
替换操作
sub 替换第一个匹配的字符串。返回新的字符串
gsub 替换所有匹配的字符串。返回新的字符串
Block 块
在调用否个方法的时候你可以定义一个块 在每次这个方法执行完的时候运行块里面的内容 同时你可以把那个方法所返回的结果放到一个参数 然后再块中访问它。
def yamadie
yield
yield
yield
end
chicks = %w{cangjingkong xiaozeyuan jiji yy}
chicks.each {|name| puts name+' is crying ya ma die..'}
或者写成:
puts 'block'
def yamadie
yield
yield
yield
end
chicks = %w{cangjingkong xiaozeyuan jiji yy}
chicks.each do |name|
puts name+' is crying ya ma die..'
end
这里有java中常用的迭代器的思想
那些配置环境的废话就不多说了 直接进入ruby语言的特性学习。
如何子弟工艺方法:
def sayGoodnight(name)
result = "Goodnight, #{name}"
return result
end
其中取传进来的参数用“#{参数名}” 就ok。
变量格式:
本地变量 可以直接是英文字母;---这种变量只能在类本身访问 默认是private的 想要他被外界访问 要变成类变量。
全局变量 以$开头。
对象 以@开头
类对象 以@@开头
数组与哈希表
ruby的数据可以包含多种数据类型,其实因为ruby中存在就是对象 所以它装的是对象就行了。
新建的时候可以直接初始化里面的数据
a = [ 1, 'cat', 3.14 ]
也可以新建一个空数组
empty1 = []
empty2 = Array.new
数组的元素还可以放数组 太tmd松散了。。似乎丢什么鬼东西进去都行。
也可以直接用字符来填充数组,不过需要转义 %W
a = %w{ ant bee cat dog elk }
哈希表
新建和初始化:每一个以逗号隔开
instSection = {
'cello' => 'string',
'clarinet' => 'woodwind',
'drum' => 'percussion',
'oboe' => 'woodwind',
'trumpet' => 'brass',
'violin' => 'string'
}
hashname = {
'key1' => 'value1' ,
'key2' => 'value132' ,
'key3' => 'value1' ,
'key4' => 'value14' ,
'key5' => 'value15'
}
访问:hashname['keyname'] 当所访问的key是空则会返回一个空nil回来
if-else 控制
传统的if else 如下:
if 条件表达式
业务
elseif
业务
else
业务
end
不要忘记‘end’结束标记。
ruby中还可以写成: do if 条件
while循环
while 条件1 and 条件2
业务
end
字符串操作
=~ 是一个查找字符串起始位置的操作。。
line =~ /Perl|Python/
查line字符串中 包含Perl或者python的开始位置。
替换操作
sub 替换第一个匹配的字符串。返回新的字符串
gsub 替换所有匹配的字符串。返回新的字符串
Block 块
在调用否个方法的时候你可以定义一个块 在每次这个方法执行完的时候运行块里面的内容 同时你可以把那个方法所返回的结果放到一个参数 然后再块中访问它。
def yamadie
yield
yield
yield
end
chicks = %w{cangjingkong xiaozeyuan jiji yy}
chicks.each {|name| puts name+' is crying ya ma die..'}
或者写成:
puts 'block'
def yamadie
yield
yield
yield
end
chicks = %w{cangjingkong xiaozeyuan jiji yy}
chicks.each do |name|
puts name+' is crying ya ma die..'
end
这里有java中常用的迭代器的思想