新手问题 关于 ruby 中 symbol 问题

wcc526 · 2014年04月24日 · 最后由 besfan 回复于 2014年04月24日 · 2087 次阅读

比如 class Persion attr_accessor :name, :age end
为什么不能写成 class Persion attr_accessor name, age end

1 楼 已删除

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 我觉得很爽的一点是它不可变

看多了就会习惯,没有冒号反而觉得别扭

需要 登录 后方可回复, 如果你还没有账号请 注册新账号