我不停地跑這個意外的錯誤標記。我想程序而無需調用紅寶石運行。對於實例,而不是ruby program1.rb
,我應該能夠program1.rb poem.txt
。語法錯誤意外的標記「(」
這是錯誤信息:
program1.rb --backwards poem.txt
./program1.rb: line 1: syntax error near unexpected token `('
./program1.rb: line 1: `def backlines(line_array)'
這是我的代碼:
def backlines(*line_array)
end
def backwards(line_array)
end
def backchars(line_array)
end
def main
file = File.new(ARGV[1], "r") do |file|
line_array = file.readlines
*line_array = line_array.reverse
if ARGV[0] == "--backlines"
*backwards_poem = backlines(line-array)
#you can manipulate "backwards_poem" however you want
elsif ARGV[0] == "--backwards"
backwards(line_array)
elsif ARGV[0] == "--backchars"
backchars(line_Array)
end
# passing a *line_array into a function
end
main
你正在從命令行運行這個文件而不傳遞給'ruby'?聽起來就像你需要一個shebang http://stackoverflow.com/questions/10376206/what-is-the-preferred-bash-shebang –
你在主要方法中缺少'end' – usha
有沒有必要做'* line_array =',這是一種反模式。只需使用'line_array ='。同樣,不要定義一個'main'方法,這是毫無意義的。據瞭解,Ruby從來沒有這樣的事情,而且這樣做會損失慣例。您還應該使用[OptionParser](http://ruby-doc.org/stdlib-2.3.1/libdoc/optparse/rdoc/OptionParser.html)來處理命令行參數。 – tadman