比如 class Persion attr_accessor :name, :age end 为什么不能写成 class Persion attr_accessor name, age end
http://stackoverflow.com/questions/23263119/ruby-symbol-in-the-ruby-class-attr-accessor/23263283?noredirect=1#23263283
直接写成 name 是表示方法,所以要么用:name,要么用"name",但是明显用:name 的效率比"name"高
attr_accessor 是方法,调用时接受参数,如果是“name, age”这种形式,那么必须定义 name 和 age,否则就是非法调用。 而 symbol 是字符串的一种高性能形式,是合法参数
symbol 我觉得很爽的一点是它不可变
看多了就会习惯,没有冒号反而觉得别扭