В настоящее время я пытаюсь узнать рубин на «Learn Ruby, The Hard Way» Вот мой вопрос ...Некоторые вопросы о символе и метода экземпляра в Руби
Следующий код взяты из упражнения 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
в этом случае?
Я не совсем уверен, в чем отличия, или, может быть, это очень читаемо для большинства рубистов?
А второй - это одна и та же линия.
method(:find_city)
Я знаю, что это позволяет мне позвонить по методу find_city
. Но опять же, почему я должен положить двоеточие до find_city
? Этот код означает разбор аргументов, которые я вставлял в символы?
'написанный в чужой стиль': D +1! –