2022年2月14日 星期一

Go lang 學習筆記 - 16 Recursion

```

package main


import "fmt"


func fact(n int) {

        if n == 0 {

                return 1

        }

        return n * fact(n - 1)

}


func main() {

        fmt.Println(fact(7))


        var fib(n int) int


        fib = func(n int)  int {

                if n < 2 {

                        return n

                }

                return fib(n-1) + fib(n-2)

        }


        fmt.Println(fib(7))

}

```

遞迴的寫法就照正常樣子  如上面的 fact()


但網頁中寫 fib() 的描述如下

Closures can also be recursive, but this requires the closure to be declared with a typed var explicitly before it’s defined.

但我看不出來 fib 是 closure

所以... 以後如果有看出來再補充

執行結果:

5040

13


沒有留言:

張貼留言

Go lang 學習筆記 - 17 Pointers

``` package main import "fmt" func zeroval(n int) {         n = 0 } func zeroptr(n *int) {         *n = 0 } func main() {         ...