2011-01-24 15 views
0

私はこれを尋ねなければならないと思っていますが、私には長すぎます。次のことを実行しようとすると、私はクラスでそれらをラップしている場合、それはだけではなく、$end<, \n, or ;を期待

finance.rb:1: syntax error, unexpected kDEF, expecting $end

def get_sign(input) 
return "+" if input.include? "+" 
return "-" if input.include? "-" 
end 

def get_account_name(input) 
if input.split[0] == "new" 
    return input.split.reject{|x| x == "new" or x == "account"}[0] 
else 
    return input.split[0] 
end 
end 

を取得します。

Ruby 1.8.7および1.9(Macruby経由)も同じエラーが発生します。 2番目のメソッドを削除すると、それが機能するようです。誰か、私を啓発してください。これは私のところで何かを本当に根本的に誤解しているようです。

+0

これはファイル全体ですか? – Phrogz

+0

うん、これです。メソッドは呼び出されていない。 – Anonymous

+0

Rubyでは 'return'を使うのは一般的ではなく、ほとんど必要ありません。あなたの最初のメソッドは次のように書き直すことができます: 'def get_sign(input)\ nif input.include? "+" \ n "+" \ nelsif input.include? " - " \ n " - " \ nend \ nend'を実行し、2番目のメソッドから 'return'キーワードを削除するだけで、コードの高速化と高速化が可能です。 – Phrogz

答えて

1

この質問の内容を新しいファイルにコピー/ペーストすると、このエラーは発生しません。そうした場合(このWebページから新しいファイルにコピー/ペーストして保存しても)、エラーは表示されますか?そうでない場合は、おそらくあなたのファイルにゴミの空白がありますか?

別のユーザーが同様の問題でこの質問を見つけ、すべてのコメントを読んで解決策を見つけることができないため、答えとして追加されました。

関連する問題