多思考,多实践,现状才会改变!
ruby 参数传递的几种形式 学习笔记
上一篇 /
下一篇 2011-07-06 11:41:55
/ 个人分类:ruby 语法
Ruby参数传递方法小结
n 一般传递方式
deffoo(a, b)
puts a, b
end
foo(1,2)
#1
#2
n 可变数量参数传递
deffoo(*args)
puts args.inspect
end
foo(1,2,3,4,5,6)
#[1, 2, 3, 4, 5, 6]
n 混合两种方式(一)
deffoo(a, b, *args)
puts a, b, args.inspect
end
foo(1,2,3,4)
#1
#2
#[3, 4]
n 混合两种方式(二)
deffoo(a, b, *args)
puts a, b, args.inspect
end
foo(1,2,3)
#1
#2
#[3]
n Hash参数(一)
def foo(values)
puts values.inspect
end
foo(:a => 1, :b => 2)
#{:b=>2, :a=>1}
n Hash参数(二)
deffoo(a, b, values)
puts a, b, values.inspect
end
foo(1,2, :a=>1,:b=>2)
#1
#2
#{:b=>2, :a=>1}
def foo (a,b,*args)
if args.include?("aa")
puts a
end
if args.include?("bb")
puts b
end
if args.include?("cc")
puts a+b
end
end
foo(1,2,"aa")
puts "------------"
foo(1,2,"aa","bb")
puts "------------"
foo(1,2,"aa","bb","cc")
#以下为输出结果:
D:\>ruby tests.rb
1
------------
1
2
------------
########################
# hash 参数传递,如果一个方法的有多于两三个参数时,程序员很难记清楚参数的顺序,这时我们就可以使用哈希对像作为参数,例如
def args_test(a,args)
if args.include?("aa")
puts args["aa"]
puts a
end
if args.include?("bb")
puts args["bb"]
end
end
args_test('2',{"aa"=>3,"bb"=>5})
#=>3 2 5
#知识补充:查询
hash表中是否存在某个键或值的方法
# h.key?(key) 返回true 或 false
# h.has_key?(key) 返回true 或 false
# h.include?(key) 返回true 或 false
#举例:
#h = {"a" => "b", "c" => "d"}
#p h.key?("a")
#返回结果=> true
1
2
3
收藏
举报
TAG:
hash表
Ruby
ruby
参数
传递