def fact(n) if n == 0 1 else n * fact(n-1) end end
你可能會發(fā)現(xiàn) end 的反復出現(xiàn),正因為如此,Ruby被叫做"類Algol"語言.(實際上,Ruby的語法更像Eiffel).同時,你也可能會發(fā)現(xiàn)這段函數(shù)缺少return語句.在這里是可以用return的,但卻不是必須的,因為一個Ruby的函數(shù)會自動返回它所最后賦值的元素.
讓我們來試試我們的階乘函數(shù).加入一行代碼會使它成為一個可工作的程序:
復制代碼 代碼如下:
# 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