区块见闻 区块见闻
Ctrl+D收藏区块见闻

FUN:Go 语言函数定义_INT

作者:

时间:

定义格式

函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。

Go语言函数定义格式如下:

funcFuncName(/*参数列表*/)(o1type1,o2type2/*返回类型*/){

//函数体、

returnv1,v2//返回多个值

}

函数定义说明:

func:函数由关键字func开始声明

FuncName:函数名称,根据约定,函数名首字母小写即为private,大写即为public

参数列表:函数可以有0个或多个参数,参数格式为:变量名类型,如果有多个参数通过逗号分隔,不支持默认参数

返回类型:

① 上面返回值什么两个变量名,当然这不是必须的,可以有类型,没变量。② 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号。③ 如果没有返回值,那么就直接省略最后的返回信息。④ 如果有返回值,那么必须在函数的内部添加return语句

函数定义

无参无返回值

funcTest(){//无参无返回值函数定义

fmt.Println("thisisatestfunc")

}

funcmain(){

Test()//无参无返回值函数调用

}

有参无返回值

普通参数列表

funcTest01(v1int,v2int){//方式1

fmt.Printf("v1=%d,v2=%d\n",v1,v2)

}

funcTest02(v1,v2int){//方式2,v1,v2都是int类型

fmt.Printf("v1=%d,v2=%d\n",v1,v2)

}

funcmain(){

Test01(10,20)//函数调用

Test02(11,22)//函数调用

}

不定参数类型

不定参数是指函数传入的参数个数为不定数量。为了做到这点,首先需要将函数定义为接受不定参数类型:

//形如...type格式的类型只能作为函数的参数类型存在,并且必须是最后一个参数funcTest(args...int){

for_,n:=rangeargs{//遍历参数列表

fmt.Println(n)

}

}

funcmain(){

//函数调用,可传0到多个参数

Test()

Test(1)

Test(1,2,3,4)

}

不定参数的传递

funcMyFunc01(args...int){

fmt.Println("MyFunc01")

for_,n:=rangeargs{//遍历参数列表

fmt.Println(n)

}

}

funcMyFunc02(args...int){

fmt.Println("MyFunc02")

for_,n:=rangeargs{//遍历参数列表

fmt.Println(n)

}

}

funcTest(args...int){

MyFunc01(args...)//按原样传递,Test()的参数原封不动传递给MyFunc01

MyFunc02(args...)//Test()参数列表中,第1个参数及以后的参数传递给MyFunc02

}

funcmain(){

Test(1,2,3)//函数调用

}

无参有返回值

有返回值的函数,必须有明确的终止语句,否则会引发编译错误。

一个返回值

funcTest01()int{//方式1

return250

}

//官方建议:最好命名返回值,因为不命名返回值,虽然使得代码更加简洁了,但是会造成生成的文档可读性差

funcTest02()(valueint){//方式2,给返回值命名

value=250

returnvalue

}

funcTest03()(valueint){//方式3,给返回值命名

value=250

return

}

funcmain(){

v1:=Test01()//函数调用

v2:=Test02()//函数调用

v3:=Test03()//函数调用

fmt.Printf("v1=%d,v2=%d,v3=%d\n",v1,v2,v3)

}

多个返回值

funcTest01()(int,string){//方式1

return250,"sb"

}

funcTest02()(aint,strstring){//方式2,给返回值命名

a=250

str="sb"

return

}

funcmain(){

v1,v2:=Test01()//函数调用

_,v3:=Test02()//函数调用,第一个返回值丢弃

v4,_:=Test02()//函数调用,第二个返回值丢弃

fmt.Printf("v1=%d,v2=%s,v3=%s,v4=%d\n",v1,v2,v3,v4)

}

有参有返回值

//求2个数的最小值和最大值

funcMinAndMax(num1int,num2int)(minint,maxint){

ifnum1>num2{//如果num1大于num2

min=num2

max=num1

}else{

max=num2

min=num1

}

return

}

funcmain(){

min,max:=MinAndMax(33,22)

fmt.Printf("min=%d,max=%d\n",min,max)//min=22,max=33

}

标签:FUNUNCINTESTCITEX Fund TokenMetaLaunchPadINTU币Coinvest

币安app下载热门资讯
狗狗币:狗狗币和柴犬停滞不前的反弹是否意味着meme币趋势已死?_DOGE

由于缺乏先兆和看涨消息,DOGE和SHIB一直在努力跟上1月份发生的更广泛的加密市场反弹。 memecoin现象在上个月的年初加密货币市场反弹中并未证明有效,因为该类别中顶级加密货币的收益几乎没.

DOGE:以太坊的入门小知识_区块链

如果你是一名软件工程师,拥有软件开发的经验。能知道从系统、架构角度学一个东西,其实能倍增学习效果。如果有一周的空闲时间。好了,下面开始就不再是废话了.

COS:长推:Bankless讨论Cosmos的90分钟视频总结_evmos币自动复投

Zaki和Sunny谈到的一些主题关于应用链论文、ATOM价值捕获、以太坊第2层与Cosmos、链间安全、MEV和Cosmos的USDC。如果以太坊是一棵树,Cosmos就是一个真菌.

加密货币:加密寒冬中,美国企业依然热衷加密货币_Pantera Fund

美国企业对于加密市场的押注尽管加密行业现状深陷在泥潭之中,但美国企业仍在押注它可能是未来的龙头。根据《华尔街日报》的报道,在线财务顾问Betterment本周为其客户推出了主题加密投资组合.

以太坊:比特币理论底部在哪里_BNB

这轮熊市有点非典型熊市的意思,一些指标并没有按以往的剧本走,按照前几轮牛熊周期来看底部应该是12000-13000的样子,也就是还得跌20-30个点的样子.

TRO:Tron 的 Sun就他与Binance的 CZ 的“所谓”交易发表了这样的看法_加密货币市场总市值是多少

Tron的创始人驳斥了有关Binance拒绝购买火币股份的提议的报道Sun声称在过去一周左右的时间里没有与CZ就火币进行过讨论Tron的创始人-孙宇晨-谈到了最近流传的加密货币交易所火币的消息.