2014-03-06 58 views
3

在Ruby中的方法内部,printreturn之间有什么区别?打印和退货之间的区别

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

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

相关:http://stackoverflow.com/questions/5018633/what-is-the-difference-between-print-and-puts –

+0

也相关:http://stackoverflow.com/questions/21821074/returning- a-string-from-a-ruby-function – edwardsmatt

+0

仅供参考:Ruby方法返回最后一行,在这种情况下'return'不是必需的。 – cortex

回答

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

5

很多。

print将在末尾输出没有换行符的数字。

return将从该方法返回数字。