-3
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”正在设置函数,而“puts”添加#{a} + #{b}”正在将该代码放在屏幕上供我查看。为什么系统不能只看到代码在“puts”中的放置方式。

如果这有点令人困惑,我很抱歉,但我是 ruby​​ 新手。此外,当我编辑a + b时,它不允许我这样做。有没有办法可以编辑它,以便它在一行上读取数字,然后在另一行上读取另一个。或者也许是a + b以 a...+...b 的形式出现(想象“。”是空格。

4

2 回答 2

2

它将 the 解释"ADDING #{a} + #{b}"为字符串,因为它应该。它是一个字符串。它不会解析您的字符串并假设您的意思。然后它使用puts. puts是一个返回 nil 的表达式,而不是a + b(感谢 Jörg W Mittag)的值。Thea+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;
}
于 2013-08-28T21:52:12.673 回答
2

最后需要它,因为“puts”将该字符串发送到控制台,而最后的 a+b 是 def 的返回值。

这相当于在 javascript 中执行此操作:

function myFunc(a,b) {
 console.log("adding" + a + " + " + b);
 return a+b;
}
于 2013-08-28T21:46:22.117 回答