如何在类初始化中拯救输入
我有一个Ruby类,并且在类的初始化过程中,用户提供了一个文件路径和文件名,并且该类将打开该文件。
def Files def initialize filename @file = File.open(filename, "r").read.downcase.gsub(/[^a-zs]/,"").split end def get_file return @file end end
但问题是用户可以提供一个不存在的文件,如果是这种情况,我需要进行救援,以便我们不会向用户显示难看的回应。
我在想的是这样的
def Files def initialize filename @file = File.open(filename, "r").read.downcase.gsub(/[^a-zs]/,"").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
我认为这是最好的方法是因为如果传入的文件很大,我猜测最好不要将大量文本字符串作为变量传递给类。 但那可能不对。
无论如何,我真的想找出处理输入无效文件的最佳方法。
def Files
def initialize filename
return unless File.exist?(filename)
@file = File.read(filename).downcase.gsub(/[^a-zs]/,"").split
end
end
链接地址: http://www.djcxy.com/p/25273.html