天天看点

golang函数——可以为类型(包括内置数据类型)定义函数,类似类方法,同时支持多返回值

不可或缺的函数,在Go中定义函数的方式如下:

通过函数定义,我们可以看到Go中函数和其他语言中的共性和特性

关键字——func

方法名——funcName

入参——— a,b int,b string

返回值—— r,s int

函数体—— {}

Go中函数的特性是非常酷的,给我们带来不一样的编程体验。

在Go中通过给函数标明所属类型,来给该类型定义方法,上面的 <code>p myType</code> 即表示给myType声明了一个方法, <code>p myType</code> 不是必须的。如果没有,则纯粹是一个函数,通过包名称访问。packageName.funcationName

如:

上述示例为 float64 基本类型扩充了方法IsEqual,该方法主要是解决精度问题。 其方法调用方式为: <code>a.IsEqual(double)</code> ,如果不扩充方法,我们只能使用函数<code>IsEqual(a, b float64)</code>

如 <code>func IsEqual(a, b float64) bool</code> 这个方法就只保留了一个类型声明,此时入参a和b均是float64数据类型。 这样也是可以的: <code>func IsEqual(a, b float64, accuracy int) bool</code>

如 <code>func Sum(args ...int)</code> 参数args是的slice,其元素类型为int 。经常使用的fmt.Printf就是一个接受任意个数参数的函数 <code>fmt.Printf(format string, args ...interface{})</code>

前面我们定义函数时返回值有两个r,s 。这是非常有用的,我在写C#代码时,常常为了从已有函数中获得更多的信息,需要修改函数签名,使用out ,ref 等方式去获得更多返回结果。

而现在使用Go时则很简单,直接在返回值后面添加返回参数即可。

摘自:http://www.cnblogs.com/howDo/archive/2013/06/04/GoLang-function.html

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6858768.html,如需转载请自行联系原作者