Go- 函数返回值

版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/119b321d5a345518e640c4cf6】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。

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>}版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/119b321d5a345518e640c4cf6】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。

还未添加个人签名 2018.09.20 加入
还未添加个人简介

促进软件开发及相关领域知识与创新的传播
 京公网安备 11010502039052号
京公网安备 11010502039052号 
    


评论