Ich hielt zu diesem unerwarteten Fehler-Token ausgeführt wird. Ich wollte das Programm ohne Rubin Aufruf auszuführen. Für Fälle, statt ruby program1.rb
, ich sollte program1.rb poem.txt
der Lage sein.Syntaxfehler unerwartetes Token ‚(‘
Dies ist Fehlermeldung:
program1.rb --backwards poem.txt
./program1.rb: line 1: syntax error near unexpected token `('
./program1.rb: line 1: `def backlines(line_array)'
Dies ist mein Code:
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
Sie führen diese Datei über die Befehlszeile aus, ohne sie an 'ruby' zu übergeben? Klingt dann, als ob du einen Shebang brauchst http://stackoverflow.com/questions/10376206/what-is-the-preferred-bash-shebang –
dir fehlt ein 'end' in der Hauptmethode – usha
Es ist nicht nötig' 'line_array zu tun = ', das ist ein Anti-Pattern. Verwenden Sie einfach 'line_array ='. Ebenso, definieren Sie nicht eine "Haupt" -Methode, das ist sinnlos. Es versteht sich, dass Ruby nie so etwas hat und diese Konventionen. Sie sollten auch [OptionParser] (http://ruby-doc.org/stdlib-2.3.1/libdoc/optparse/rdoc/OptionParser.html) verwenden, um Befehlszeilenargumente zu verarbeiten. – tadman