def fact(n) if n == 0 1 else n * fact(n-1) end end
你可能會(huì)發(fā)現(xiàn) end 的反復(fù)出現(xiàn),正因?yàn)槿绱?Ruby被叫做"類Algol"語言.(實(shí)際上,Ruby的語法更像Eiffel).同時(shí),你也可能會(huì)發(fā)現(xiàn)這段函數(shù)缺少return語句.在這里是可以用return的,但卻不是必須的,因?yàn)橐粋€(gè)Ruby的函數(shù)會(huì)自動(dòng)返回它所最后賦值的元素.
讓我們來試試我們的階乘函數(shù).加入一行代碼會(huì)使它成為一個(gè)可工作的程序:
復(fù)制代碼 代碼如下:
# Program to find the factorial of a number # Save this as fact.rb def fact(n) if n == 0 1 else n * fact(n-1) end end