我最近在接受初级开发职位的采访时被问到这个问题。我被要求创建一个计算器程序,可以在不使用内置的+, - ,*,/运算符的情况下进行加,减,乘和除。基本上是从头开始构建它。
我不知道如何解决这个问题。有没有人对如何实施至少一项操作有任何指导?我可以从那里弄清楚剩下的,但确实需要一些指导。
我在python和ruby中编码。
答案 0 :(得分:2)
这是添加的一个例子。
class Integer
def add(int) # int is 5 in the demo
res = self # 7 in the demo
int.times{res = res.succ} # succ just adds 1
return res
end
end
# demo
p 7.add(5) # => 12
除了succ
之外,Integer类还有一个pred
方法,它减去1.对于构建subtract
方法非常有用。乘法只是多次加法,整数除法只是减去多次。
答案 1 :(得分:1)
研究如何实施Ruby的“运营商”;它们是方法,send
可以用作调用它们的替代方法。
来自文档:
调用符号标识的方法,传递指定的任何参数....
class Klass
def hello(*args)
"Hello " + args.join(' ')
end
end
k = Klass.new
k.send :hello, "gentle", "readers" #=> "Hello gentle readers"
从那起:
1.send(:+, 1) # => 2
更多地了解这一点是留给读者的练习。
如果您真的想深入了解,可以创建基本方法,如:
class Fixnum
def add(value)
val = self
value.times do
val = val.succ
end
val
end
end
1.add(1) # => 2