04/20/2010 Ruby命名 数组和散列表
Ruby命名规则:名称的第一个字符显示这个名称如何被使用
1)局部变量,方法参数,方法名称:必须以小写字母或下划线开始。
2)全局变量:都有$符号为前缀。
3)实例变量:以@符号开始。
4)类变量:以@@符号开始。
5)类名称,模块名称,常量: 必须以一个大写字母开始。
数组(arrays)和散列表(hashes)
Ruby的数组和散列表是被索引的收集(indexed collection).
相同:两者都存储对象的集合,通过键(key)来访问。都可以保存不同类型的对象。
不同:数组的键是整数,散列表支持以任何对象作为它的键。
数组
数组:a=[1,’cat’,3.14]
访问: a[0]
设置:a[2] = nil
显示:puts a
注: nil是一个对象,表示没有任何东西的对象。
创建数组:a = %w{a b c} #same as: a = ["a","b","c"] (不需要处理引号和逗号)
散列表
hash literal: 使用花括号,必须为每一项提供2个对象,一个键(key)和一个值(value)。
hashes = {
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value1'
}
使用:hashes[‘key1’]
创建散列表:hashes = Hash.new(5) ;
puts hashes[‘key1’] # return 5
注:在散列表里面,键(key)必须是唯一的。
散列表里面的键和值,可以是任意对象(如:值是数组或散列表)。
若用散列表没有包含的键进行索引(如hashes[‘key4’]),散列表返回nil。
在创建一个新的空散列表时,可以指定一个默认值(5代替返回值nil)。
Test Code:
# My first method
def goodnight(name)
result = 'Good night, ' + name + '.'
return result
end
puts goodnight('test1')
# Code in another way
def goodnight(name)
result = "Good night, #{name}."
return result
end
puts goodnight("test2")
$greeting = "Hello"
@name = "Prudence"
puts "#$greeting, #@name"
def goodnight(name)
"Good night, #{name}"
end
puts goodnight("test3")