2012-04-27 9 views
0
class UnitCircle 
    def prompt 
     puts "Enter a number: " 
     @number = gets 
     @number = @number.to_i 
     puts "Enter a trigonometric equation to perform on that number: " 
     @eqn = gets 
    end 
end 
uc = UnitCircle.new 
uc.prompt 
num = Math.send(uc.instance_eval {@eqn}, uc.instance_eval {@number}) 

私が言う、NoMethodErrorを取得するのはなぜですか?

@number = 30 
@eqn = sin 

でそれを実行しようとすると、私は、なぜ、ない方法のエラーを取得しますか?

答えて

0
class UnitCircle 
    def prompt 
     puts "Enter a number: " 
     @number = gets.chomp 
     @number = @number.to_i 
     puts "Enter a trigonometric equation to perform on that number: " 
     @eqn = gets.chomp 
    end 
end 

getsのメソッドには、改行記号 "\ n"が含まれます。だからあなたはchompする必要があります。 chompを行わないと、 "sin"の代わりに "sin \ n"というメソッドを呼び出すことになります。