rails为什么钟情于:符号?

引用:
原帖由 lgn21st 于 2007-11-19 02:21 发表
这个符号系统大有来头,本想借用SICP中对符号系统的解释来回答这个问题,又发现有些地方对于ruby来说不妥,待我有时间类比python,scheme,haskell跟erlang后,我开专贴跟大家讨论。
学到不少东西啊
BTW,
在ruby 2里中,hash有了新语法
{a: "foo"}    # => {:a=>"foo"}
maninred讲的很有道理。
每个symbol都只有一个实例。比如
arr = ["a","a","a",:a,:a,:a]
"a"在内存中存在三个独立的对象,:a则是唯一的一个,只是被引用多次而已。
引用:
原帖由 maninred 于 2007-11-18 13:19 发表
在ruby中字符串和其他的语言不一样,同样的字符串不是在内存中唯一存在的。
比如

$ irb
Welcome to Ruby's World
irb(main):001:0> a = "abc"
=> "abc"
irb(main):002:0> b = "abc"
=> "abc"
irb(mai ...
符号和字符串最大的差异是:
符号将成为该名称的单个实例。如:在多个地方使用:user,就是只创建了一个符号对象。
”user“的字符串在每次使用时都是不同的对象。
建议看看 The Ruby Way 里面专门有提到这个。
我也是被这个问题困扰了好久,在这儿找到了答案。
建议阅读ruby for rails这本书,里面很多问题讲得很透,有中文版出售。