使用 ARGV (ruby) 创建目录

Create directory with ARGV (ruby)

提问人:Benoit Lardinois 提问时间:11/20/2020 更新时间:11/20/2020 访问量:42

问:

我创建了这个程序,以便在有 ARGV 的情况下在程序目录中创建一个文件夹。

def check_if_user_gave_input
  abort("mkdir: missing input") if ARGV.empty?
end

def get_folder_name
  return folder_name = ARGV.first
end

def create_folder(name)
  Dir.mkdir(name)
end

def perform
  folder_name = get_folder_name
  create_folder(folder_name)
end

perform

因此,如果我在终端中运行此程序,一切正常。但是,如果我在我的终端中尝试并且没有写任何东西,那么在我收到这样的错误消息并且我看不到字符串之后没有写任何东西$ ruby app.rb"mkdir: missing input"

Traceback (most recent call last):
    3: from app.rb:18:in `<main>'
    2: from app.rb:15:in `perform'
    1: from app.rb:10:in `create_folder'
app.rb:10:in `mkdir': no implicit conversion of nil into String (TypeError)

如何解决这个问题?谢谢。

Ruby 字符串 方法 语法-错误 argv

评论


答:

1赞 Ritesh Choudhary 11/20/2020 #1

只需在check_if_user_gave_inputperform

def check_if_user_gave_input
  abort("mkdir: missing input") if ARGV.empty?
end

def get_folder_name
  ARGV.first
end

def create_folder(name)
  Dir.mkdir(name)
end

def perform
  check_if_user_gave_input
  folder_name = get_folder_name
  create_folder(folder_name)
end

perform

评论

0赞 Benoit Lardinois 11/20/2020
好的,谢谢,它必须放在执行方法的开头......