python“不返回任何内容”

时间:2020-07-27 21:40:24

标签: go recursion nonetype

在没有for循环的情况下,如何在Go中实现与以下python代码相同的事情?

def test(i):
    if i == 0:
        return None
    else:
        print(i)
        return test(i - 1)

2 个答案:

答案 0 :(得分:2)

python函数从不返回值:

func test(i int) {
  if i==0 {
    return
  }
  fmt.Println(i)
  test(i-1)
}

答案 1 :(得分:0)

使用第二个返回值指示该函数返回了一个有效值:

func test(i int) (int, bool) {
    if i == 0 {
        return 0, false
    }
    fmt.Println(i)
    return test(i - 1)
}

在此特定示例中,顶级调用者的返回值始终为0, false。鉴于此,不需要返回值。

func test(i int) {
    if i == 0 {
        return
    }
    fmt.Println(i)
    test(i - 1)
}
相关问题