我正在努力學習的「學習紅寶石艱難的歷程」 我的問題是紅寶石......關於Ruby的
下面的代碼是從練習40:
cities = {'CA'=> 'San Francisco', 'MI'=> 'Detroit', 'FL'=> 'Jacksonville'}
cities['NY'] = 'New York'
cities['OR'] = 'Portland'
def find_city(map, state)
if map.include? state
return map[state]
else
return 'Not found.'
end
end
cities[:find] = method(:find_city)
while true
print 'State? (ENTER to quit) '
state = gets.chomp
break if state.empty?
puts cities[:find].call(cities, state)
end
我玩過代碼,並最終了解它是如何工作的。 但我還是不明白兩件事:
第一...
在對代碼的中間, 它定義的變量
cities[:find] = method(:find_city)
正如我所知道的現在, :
(冒號)聲明一個符號。 我想知道在這種情況下將變量命名爲cities[:find]
而不是使用cities_find
是否更好?
我不太清楚有什麼不同,或者對於大多數rubyist來說可讀性很強?
而第二個也是同一條線。
method(:find_city)
我知道它允許我調用find_city
方法。 但是,爲什麼我必須在find_city
之前冒號? 這段代碼是否意味着解析我放入符號的參數?
'寫成外星人風格:D +1! –