ruby基本语法2
哈希
哈希是一种类似字典的集合,集合中包含了唯一的键和键所对应的值
新建哈希
1 2 3 4 5 6 7 8 9 10
| hsh = {"a" => 10, "b" => 6} hsh = {a:10, b:6} hsh = Hash.new
hsh = Hash.new(0) hsh[:key_not_exit] hsh.default
hsh = Hash.new{|hash, key| hash[key] = "我是hash#{key}"} hsh[:key_not_exit]
|
获取哈希信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| hsh = {key1:1, key2:2} hsh.default hsh.empty? hsh.eql?({}) hsh.length hsh.size hsh.clear
|
访问哈希中的键值对
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| hsh = {key1:1, key2:2}
hsh[:key1] hsh[:key3] hsh.fetch(:key1) hsh.fetch(:key_not_exit) hsh.has_key?(:key1) hsh.key(2) hsh.keys hsh.values
hsh.assoc(:key1)
|
增加哈希中的键值对
1 2 3 4 5 6 7 8
| hsh = {key1:1, key2:2}
hsh[:key3] = 3 hsh.store(:key3, 3) hsh.merge({key3:3}) hsh.update
|
删除哈希中的键值对
1 2 3 4 5 6 7 8 9 10
| hsh = {key1:1, key2:2}
hsh.delete(:key2) hsh.delete_if{|key, value| value > 1} hsh.keep_if hsh.shift
|
遍历哈希中的键值对
1 2 3 4 5 6 7 8 9 10
| hsh = {key1:1, key2:2}
hsh.each hsh.each_pair hsh.each_key hsh.each_value hsh.select hsh.reject
hsh.each_key{|key| puts key}
|
方法
- 方法名应该以小写字母或者下划线开头
- 方法名可以以?、!、或者=号结尾
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| def my_method (arg1, arg2) puts arg1, arg2 end
def my_method (arg1 = "arg1", arg2 = "arg2") puts arg1, arg2 end
my_method my_method("hi") my_method("hi", "world")
def my_method (arg1, *rest) puts "arg1 = #{arg1}, rest = #{rest.inspect}" end
def my_method (first, *, last)
end
def my_method (params)
end
my_method(:arg1 => "arg1", :arg2 => "arg2") my_method({:arg1 => "arg1", :arg2 => "arg2"})
def my_method (arg) if block_given? yield(arg) else puts "no block given" end end
def my_method (arg, &block) block.call(arg) end
my_method("hi"){|a| p a}
|