写点什么

Go- 函数返回值

用户头像
HelloBug
关注
发布于: 5 小时前
Go- 函数返回值

Go 学习笔记,学习内容《Go入门指南》


主要介绍以下内容:

  • 函数返回值形式

  • 函数返回值个数

  • 函数封装处理返回值

  • fmt.Println 函数返回值


代码示例可以直接运行

package main
import ( "fmt" "os" "strconv")
func foo() (n1 int, n2 int) { return 99, 100}
func atoi(s string) (n int) { n, _ = strconv.Atoi(s) return}
func main() { /* 函数返回值形式 1、成功:正常值,失败:异常值,error信息,error信息类型为:var err error 2、成功:正常值,true,失败: 异常值,false */ num, err := strconv.Atoi("8") // 参数为非数字的字符串时可测试err != nil的情况 if err != nil { fmt.Println("strconv error: ", err) // 输出:strconv error: strconv.Atoi: parsing "H": invalid syntax os.Exit(1) // 如果想要在失败的时候退出程序,可以直接Exit return // 如果想要在失败的时候退出函数,可以直接return } fmt.Println(num) // 输出:0
/* 可以下面这种方式调用 */ if n, err := strconv.Atoi("6"); err == nil { fmt.Println(n) // 注意 n 的作用域在if代码块,若在该代码块之后调用,则编译错误:undefined: n }
/* 函数返回值个数和接收值个数必须相等 */ n1, n2 := foo() fmt.Println(n1, n2) // 输出:99 100 //n1 = foo() // 编译错误:assignment mismatch: 1 variable but foo returns 2 values //n3, n4, n5 := foo() //编译错误:assignment mismatch: 3 variables but foo returns 2 values
/* 函数封装 */ n3 := atoi("Go") fmt.Println(n3) // 输出:0
/* fmt.Println函数返回值 打印到控制台时,函数返回值可以忽略,当输出到文件流、网络流等具有不确定因素的输出对象时,应该始终检查是否有错误发生 */ count, err := fmt.Println(1, 2, 3) // 输出:1 2 3 fmt.Println(count, err) // 输出:6 <nil>}
复制代码


发布于: 5 小时前阅读数: 3
用户头像

HelloBug

关注

还未添加个人签名 2018.09.20 加入

还未添加个人简介

评论

发布
暂无评论
Go- 函数返回值