def add(a, b)
puts "ADDING #{a} + #{b}"
a + b
end
def subtract(a, b)
puts "SUBTRACTING #{a} - #{b}"
a - b
这是我的代码,我的问题是,为什么我最后需要额外的( a + b)和(a-b)?我知道“def”正在设置功能,而“put”ADDING#{a} +#{b}“'正在将代码放到屏幕上供我查看。为什么系统不能只看到代码放在“puts”中的方式。
如果这有点令人困惑,我很抱歉,但我是红宝石的新手。另外,当我编辑 a + b 时,它不允许我这样做。有没有办法我可以编辑它,以便它读取一行上的数字,然后另一行读取另一行。或者也许这样 a + b 出现为...... + ... b(想象“。”是空格。)
答案 0 :(得分:2)
你最后需要它,因为“puts”将该字符串发送到控制台,而末尾的a + b是def的返回值。
这相当于在javascript中执行此操作:
function myFunc(a,b) {
console.log("adding" + a + " + " + b);
return a+b;
}
答案 1 :(得分:2)
它正在将"ADDING #{a} + #{b}"
解释为字符串,因为它应该如此。这是一个字符串。它不解析你的字符串并假设你的意思。然后使用puts
将其打印到输出。 puts
是一个返回nil的表达式,而不是a + b
的值(感谢JörgWMittag)。 a+b
是一个表达式,其值为a
加上b
的值,因此您的函数也具有该值。
在C中它是
之间的区别void add( int a, int b )
{
printf( "ADDING %d + %d\n", a, b );
}
和
int add( int a, int b )
{
printf( "ADDING %d + %d\n", a, b );
return a + b;
}