很多时候人们使用符号作为Ruby哈希中的键.
使用字符串有什么好处?
例如:
hash[:name]
Run Code Online (Sandbox Code Playgroud)
与
hash['name']
Run Code Online (Sandbox Code Playgroud) 我是ruby语言的新手.根据我的阅读,我必须使用符号而不是字符串.那是对的吗 ?
我在各种网站上看到了这个答案:
如果对象的内容(字符序列)很重要,请使用字符串如果对象的标识很重要,请使用符号
但是,这究竟意味着什么?请给我一个解释,即使是外行也能理解.
在视图haml文件中我有一个链接,当你点击时,你得到按标题或发布日期排序的所有电影.控制器中的代码是:
def index
sort = params[:sort] || session[:sort]
case sort
when 'title'
ordering,@title_header = {:order => :title}, 'hilite'
when 'release_date'
ordering,@date_header = {:order => :release_date}, 'hilite'
end
# some more codes here
@movies = Movie.find_all_by_rating(@selected_ratings.keys, ordering)
end
Run Code Online (Sandbox Code Playgroud)
如果我改变
ordering,@title_header = {:order => :title}, 'hilite'
至
ordering,@title_header = {:order => title}, 'hilite'
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误:
undefined local variable or method `title' for #<MoviesController:0xb29a853c>
Run Code Online (Sandbox Code Playgroud)