Go by Example ไธญๆ–‡็‰ˆ: ้€’ๅฝ’

Go ๆ”ฏๆŒ ้€’ๅฝ’ใ€‚ ่ฟ™้‡Œๆ˜ฏไธ€ไธช็ปๅ…ธ็š„็คบไพ‹ใ€‚

package main
import "fmt"

fact ๅ‡ฝๆ•ฐๅœจๅˆฐ่พพ fact(0) ๅ‰ไธ€็›ด่ฐƒ็”จ่‡ช่บซใ€‚

func fact(n int) int {
    if n == 0 {
        return 1
    }
    return n * fact(n-1)
}
func main() {
    fmt.Println(fact(7))

้—ญๅŒ…ไนŸๅฏไปฅๆ˜ฏ้€’ๅฝ’็š„๏ผŒไฝ†่ฟ™่ฆๆฑ‚ๅœจๅฎšไน‰้—ญๅŒ…ไน‹ๅ‰็”จ็ฑปๅž‹ๅŒ–็š„ var ๆ˜พๅผๅฃฐๆ˜Ž้—ญๅŒ…ใ€‚

    var fib func(n int) int
    fib = func(n int) int {
        if n < 2 {
            return n
        }
        return fib(n-1) + fib(n-2)

็”ฑไบŽ fib ไน‹ๅ‰ๅœจ main ไธญๅฃฐๆ˜Ž่ฟ‡๏ผŒ ๅ› ๆญค Go ็Ÿฅ้“ๅœจ่ฟ™้‡Œ็”จ fib ่ฐƒ็”จๅ“ชไธชๅ‡ฝๆ•ฐใ€‚

    }
    fmt.Println(fib(7))
}
$ go run recursion.go 
5040
13

ไธ‹ไธ€ไธชไพ‹ๅญ: ๆŒ‡้’ˆ