ruby中的计算方法
我需要编写一个包含三个参数的计算方法:一个整数、一个运算符字符串(例如:“+”)和另一个整数。该方法应执行该操作并返回结果,即整数。该方法应该能够处理+、-、*和/操作。例如,计算(4,“+”,5)应该返回9 我认为方法应该是这样的:ruby中的计算方法,ruby,Ruby,我需要编写一个包含三个参数的计算方法:一个整数、一个运算符字符串(例如:“+”)和另一个整数。该方法应执行该操作并返回结果,即整数。该方法应该能够处理+、-、*和/操作。例如,计算(4,“+”,5)应该返回9 我认为方法应该是这样的: def calculator(a,'b',c) a.to_i b.to_s c.to_i end p calculator(4,'+',5) 我一直收到错误消息。请告知如何呼叫其他操作员来完成此操作。可能类似于: def calculator(a,
def calculator(a,'b',c)
a.to_i b.to_s c.to_i
end
p calculator(4,'+',5)
我一直收到错误消息。请告知如何呼叫其他操作员来完成此操作。可能类似于:
def calculator(a, operation, b)
a.send(operation, b)
end
calculator(1, '+', 3)
#=> 4
calculator(3, '*', 2)
#=> 6
也许是这样的:
def calculator(a, operation, b)
a.send(operation, b)
end
calculator(1, '+', 3)
#=> 4
calculator(3, '*', 2)
#=> 6
您应该了解什么是方法签名,什么是语句。
如果您不想费心理解,可以使用rubysend方法 编辑:
您应该了解什么是方法签名,什么是语句。
如果您不想费心理解,可以使用rubysend方法 编辑:
这个
a.to_i b.to_s c.to_i
假设是什么意思?如果参数是a
、op
和b
,所有字符串,你都可以写eval a+b+c
(例如eval“2”+“*”+“3”=>6
),但如果你写了,警察会追上你的(因为eval
,如果随意使用,可能会被坏人利用)。这a.to_i b.to_s c.to_i
是什么意思?如果参数是a
,op
和b
,所有字符串,你都可以写eval a+b+c
(例如,eval“2”+“*”+“3”\6
),但如果你这样做,eval
警察会追捕你(因为eval
,如果随意使用,可能会被坏人利用)。还有使用符号(:+
,:*
)的额外好处。还有使用符号(:+
,:*
)的额外好处。