Я через несколько месяцев изучаю Ruby, и сейчас я пытаюсь построить южнокорейский/северокорейский/английский словарь. Я кормлю его текстовым файлом, в котором есть все слова.Ruby: constant, module, hash
До сих пор я получил:
module Dictionary
DICTIONARY = []
end
class File
include Dictionary
def self.convert(file)
readlines(file).each do |line|
south, north, meaning = line.split(',')
DICTIONARY << { :south => south, :north => north, :meaning => meaning }
end
end
end
File.convert("dictionary.txt")
Dictionary::DICTIONARY.sort_by { |word| word[:north] }.each do |word|
puts "#{word[:south]} is #{word[:north]} in North Korean. They both mean #{word[:meaning]}"
end
Мой вопрос:
1) Является ли это ненужным для меня, чтобы сделать отдельный модуль для массива? (Я просто пытался экспериментировать со смешением в модулях и классах)
2) Использует ли константу для массива правильный ход? Думаю, мой мыслительный процесс состоял в том, что я хотел, чтобы массив мог получить доступ извне, но, честно говоря, я не знаю, что я делаю.
Заранее спасибо.
Что значит «снаружи». Какой тип приложения вы строите? –
Вы можете создать 'instance_variable' со словарем вместо' constant' –
Я бы предложил не загрязнять класс 'File', потому что это универсальный класс для чтения/записи всех видов файлов, а не только для вашего конкретного использования - дело. – Aetherus