Ruby에서 ARGV의 핵심은 무엇입니까?Ruby에서 ARGV의 핵심은 무엇입니까?
ruby ex1.rb
내가
ruby ex1.rb blah blah blah
를 입력하는 데 필요한 첫 번째, 두 번째 및 세 번째 변수에 넣어 : 때 내가 할 필요가있는 파일을 실행하려면이 점을 무엇
first, second, third = ARGV
puts "The script is called: #{$0}"
puts "Your first variable is: #{first}"
puts "Your second variable is: #{second}"
puts "Your third variable is: #{third}"
프로그램을 실행하는 사람 모두에게 이점이 있습니까? 그들은 그것이 실행 파일이라고 가정하기 때문에 어쨌든 그것을 할 수 없습니다 :
user = ARGV.first
prompt = '> '
puts "Hi #{user}, I'm the #{$0} script."
puts "I'd like to ask you a few questions."
puts "Do you like me #{user}?"
print prompt
likes = STDIN.gets.chomp()
puts "Where do you live #{user}?"
print prompt
lives = STDIN.gets.chomp()
puts "What kind of computer do you have?"
print prompt
computer = STDIN.gets.chomp()
puts <<MESSAGE
Alright, so you said #{likes} about liking me.
You live in #{lives}. Not sure where that is.
And you have a #{computer} computer. Nice.
MESSAGE
누군가이 설명해 주시겠습니까?
"실행 파일이라고 생각하기 때문에 어쨌든 할 수는 없습니다"라는 생각의 결함을 보여줍니다. 실행 가능하다면 어떤 차이가 있습니까? 이는 OS에서 설정되는 약간의 값일뿐 스크립트가 매개 변수를 허용 할 수 있는지 여부에는 영향을 미치지 않습니다. 아마도 당신은 스크립트가 GUI로 시작되고 사용된다는 것을 의미했을 지 모르지만 스크립트가 시작 프로세스의 일부로 매개 변수를받을 수도 있습니다 ...이 모든 질문은 그릇된 것이라고 생각합니다. –
주어진 예제에서 사용자 입력에 대한 응답으로 실행 중에 모든 입력이 수집됩니다. ARGV는 사용자 입력없이 실행 시작시 해당 데이터를 수집합니다. – JDS
위의 코드에서 각 "청크"가 상당히 비싸다고 생각해보십시오. 10 초. 유형을 입력하고, 10 초를 기다리며, 입력하고, 10 초를 기다릴 것입니까? - 또는 - 입력 한 다음 30 초를 기다리시겠습니까? 필요한 경우가 아닌 초기 실행시 인수를 제공하는 것이 유용한 이유 중 한 가지 예가 있습니다. –