打印和返回之间的区别

时间:2014-03-06 23:16:16

标签: ruby-on-rails ruby

当在Ruby中的方法内部时,printreturn之间有什么区别?

def squared_number(num)
  return (num**2)
end

def squared_number(num)
  print (num**2)
end

2 个答案:

答案 0 :(得分:5)

很多。

print将在最后输出没有换行符的数字。

return将返回方法中的数字。

答案 1 :(得分:5)

return结束当前方法返回传递的参数作为结果。例如:

def add(a, b)
    return a + b
end

c = add(1, 2)

在Ruby中,last语句自动返回值。所以我们可以像这样定义add方法

def add(a, b)
    a + b
end

但是return非常有用,如果你想在最后一行之前结束方法执行。例如:

def specialAdd(a, b)
    if a < 0
        return -1
    end
    a + b
end

如果第一个参数为负,则此方法始终返回-1。在所有其他情况下,它的工作方式与add方法类似。

另一方面,print方法将传递的参数输出到标准输出(控制台),作为结果返回nil。我们可以使用irb - 交互式ruby控制台看到它:

$ irb
irb(main):002:0> print "Hello World\n"
Hello World
=> nil
irb(main):003:0> 

在这里,我们看到"Hello World"加上换行符。打印方法的返回值为nil