1、代码块形参和方法形参之间的一个重要区别是,代码块形参不允许有默认值,但是方法形参可以。
tes.rb:1: syntax error, unexpected '=', expecting '|'[1,2,3].each {|x;y=10|; print x*y}
^
tes.rb:1: syntax error, unexpected '}', expecting $end
[1,2,3].each {|x;y=10|; print x*y}
更改后则正常了。
[1,2,3].each {|x;y|; y=10; print x*y}
1.9版本后定义了一种创建Proc对象的新语法,这种语法允许参数具有默认值
[1,2,3].each &->(x,y=10) {print x*y}
2、命令行参数使用
x = ARGV[0].to_f
y = ARGV[1].to_f
sum = x + y
print sum