我有一个Ruby类,在类的初始化中,用户提供了一个文件路径和文件名,该类打开了该文件。
def Files def initialize filename @file = File.open(filename, "r").read.downcase.gsub(/[^a-z\s]/,"").split end def get_file return @file end end
然而,问题是用户可以提供不存在的文件,如果是这种情况,我需要进行救援,因此我们不会向用户显示丑陋的响应。
我在想的是这样的事情
def Files def initialize filename @file = File.open(filename, "r").read.downcase.gsub(/[^a-z\s]/,"").split || nil end end
然后在调用新文件的脚本中我可以做
def start puts "Enter the source for a file" filename = gets file = Files.new filename if file.get_file.nil? start else #go do a bunch of stuff with the file end end start
我认为这是最好的方法是因为如果传入的文件很大,我猜测最好不要将大量文本作为变量传递给类。但那可能不对。
无论如何,我真的想找出处理输入无效文件的最佳方法。
答案 0 :(得分:2)
def Files
def initialize filename
return unless File.exist?(filename)
@file = File.read(filename).downcase.gsub(/[^a-z\s]/,"").split
end
end