go - 从函数返回的正确方法是什么?
问题描述
我很困惑我应该如何从函数中返回一个值。我正在尝试以下示例:
- 将 false 传递给函数 a
- c 的值在函数 a 中为假
- 它将进行递归调用,这会将 c 的值从 false 更改为 true
所以函数应该返回一个字符串“true”和bool true,但它返回一个字符串“false”和bool false
package main import ( "fmt" ) func a(c bool) (string, bool) { if c { return "true", true } a(true) return "false", false } func main() { s, ok := a(false) fmt.Println(s, ok) }
解决方案
当为假时,您的递归代码将始终返回“假”c
假。请参阅下面的正确代码。
package main
import (
"fmt"
)
func a(c bool) (string, bool) {
if c {
return "true", true
}
return a(true)
}
func main() {
s, ok := a(false)
fmt.Println(s, ok)
}
推荐阅读
- nuxt.js - Nuxt 404 页面刷新页面
- ruby-on-rails - 在 Sidekiq 重试之前(或期间)运行回调
- perl - 将 Markdown 文件中包含特定路径模式的所有节标题转换为不同的格式
- java - 通过spring boot java本地访问时,AWS Elastic Cache(Redis)连接失败(jedis连接错误)
- r - 在 Shiny 中,“闭包”类型的对象不是子集,尽管使用了括号
- java - 如何一次选择 1 个单选按钮(RecyclerView)?
- sql - 加入窗口函数以显示与 ID 相关的下一个日期
- python - 在 Flask 中显示 .txt 文件
- prometheus - Prometheus Labeldrop 操作背后的基本原理
- google-drive-api - 如何使用python读取谷歌驱动器中特定目录中的所有文件?