我是靠谱客的博主 纯情鸡,最近开发中收集的这篇文章主要介绍Golang开发-函数的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Go 语言最少有个 main() 函数。
函数声明告诉了编译器函数的名称,返回类型,和参数。
定义:

func function_name( [parameter list] ) [return_types] {
函数体
}

func:函数由 func 开始声明
function_name:函数名称
parameter list:参数列表,指定参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。
return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。(没有返回值的函数不需要)
函数体:函数定义的代码集合

package main
import "fmt"
func main() {
var x,y,z int
x,y,z=1,6,3
var res int
res=mymax(x,y,z)
fmt.Println(x,",",y,"和",z,"的最大值为:",res)
}
func mymax(a,b,c int) int{
var res,tmp int
if (a>b){
tmp=a
}else{
tmp=b
}
if(tmp>c){
res=tmp
}else{
res=tmp
}
return res
}
//1 , 6 和 3 的最大值为: 6

函数作为实参
在main函数中创建函数mymax作为实参

package main
import "fmt"
func main() {
var x,y,z int
x,y,z=1,6,3
mymax:=func(a,b,c int) int{
var res,tmp int
if (a>b){
tmp=a
}else{
tmp=b
}
if(tmp>c){
res=tmp
}else{
res=tmp
}
return res
}
fmt.Println(x,",",y,"和",z,"的最大值为:",mymax(x,y,z))
}
//1 , 6 和 3 的最大值为: 6

方法
方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。

func (variable_name variable_data_type) function_name() [return_type]{
/* 函数体*/
}
package main
import "fmt"
/* 定义结构体 */
type Circle struct {
radius float64
}
func main() {
var c1 Circle
c1.radius = 4
fmt.Println("Area of Circle = ", c1.getArea())
}
//Circle 类型对象中的方法
func (c Circle) getArea() float64 {
//c.radius 即为 Circle 类型对象中的属性
return 3.14 * c.radius * c.radius
}
//Area of Circle =
50.24

闭包
Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。
举例:创建了函数add(),返回另外一个函数。该函数的目的是在闭包中递增 i 变量

package main
import "fmt"
func main() {
add_func := add(1,2)
fmt.Println(add_func())
fmt.Println(add_func())
fmt.Println(add_func())
add_func2 := add(4,5)
fmt.Println(add_func2())
fmt.Println(add_func2())
fmt.Println(add_func2())
}
// 闭包使用方法
func add(x1, x2 int) func()(int,int)
{
i := 0
return func() (int,int){
i++
return i,x1+x2
}
}
/*
1 3
2 3
3 3
1 9
2 9
3 9
*/

最后

以上就是纯情鸡为你收集整理的Golang开发-函数的使用的全部内容,希望文章能够帮你解决Golang开发-函数的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部