#!usr/bin/env ruby def each(i=1,&block) puts i block.call(i) end value = 5 each :value do |i| puts "#{i}" end
输出结果如下:
value value
请问该如何理解符号作为实参传入方法呢?
把 value = 5 这一行去掉就好理解了
也就是说符号作为实参传进去只能作为字符串处理,类似于起到了 switch 的作用是吗?
puts :value # => value puts "#{:value}" # => value
有什么不对吗?
符号是有别于字符串和整数的另一个基本类型,不指代变量也不等价于字符串。
常量和变量的区别是什么?
对,跟你定义的变量 value 没有任何关系