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})

と言って実行しようとすると、

@number = 30
@eqn = sin

メソッドエラーが発生しないのはなぜですか?

4

1 に答える 1

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なりません。チョップしないと、「sin」ではなく「sin\n」メソッドを呼び出すことになります。

于 2012-04-27T23:29:19.383 に答える