FUN:Go 语言函数定义

定义格式

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

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

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

//函数体、

returnv1,v2//返回多个值

}

函数定义说明:

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

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

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

返回类型:

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

去中心化交易所Mango Markets恢复加密货币交易:金色财经报道,已关闭的去中心化交易所Mango Markets背后的开发人员表示,他们正推动重新启动该项目。SEC对代币的标记引发了棘手的问题,即Mango Markets的“第 4 版”能否在不面临监管机构愤怒的情况下继续进行。SEC没有指控Mango有不当行为。但该机构上周指责MNGO交易员Avraham Eisenberg操纵证券市场,他在10月份从该交易所损失了1.16亿美元。

项目创始人Daffy Durairaj承诺继续进行软件升级以重启Mango Markets。Mango Markets是Solana上曾经流行的加密货币交易、借贷平台。[2023/1/27 11:32:05]

函数定义

无参无返回值

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

fmt.Println("thisisatestfunc")

Argo Blockchain要求暂停其美股交易24小时:12月27日消息,在美国和英国两地上市的矿企 Argo Blockchain 表示,由于伦敦证券交易所于2022年12月27日星期二休市,该公司已要求暂停其在纳斯达克全球精选市场交易的美国预托证券和无担保票据的交易。Argo Blockchain 预计将于2022年12月28日在纳斯达克恢复交易。该公司本月早些时候表示,它已接近重组而无需宣布破产。[2022/12/27 22:10:47]

}

funcmain(){

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

}

有参无返回值

普通参数列表

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

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

}

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

专注于比特币的新风投公司Ego Death Capital正在为首只基金筹集3000万美元:金色财经报道,根据提交给美国证券交易委员会(SEC)的监管文件,致力于比特币生态系统的新风险投资公司Ego Death Capital正在为其第一只基金筹集3000万美元。文件显示,Ego Death Capital LP于9月2日开始募资,截至9月15日,已从28名投资者那里筹集了11,425,000美元。

Ego Death合伙人Nico Lechuga表示,一旦筹集到所有资金,该基金计划投资12至15家公司,平均支票规模为100万至150万美元。Lechuga调了比特币在新兴市场的重要性,尤其是那些没有银行账户的人群,因此需要不断扩大比特币生态系统。他说,“我们非常关注我们所说的第3层(应用层)和某种第2.5层,即基础设施”。[2022/10/19 17:31:28]

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

}

矿企Argo Blockchain将于下周开始运营德克萨斯州的采矿设施:5月5日消息,该公司在周四提交给伦敦证券交易所的文件中表示,加密矿工 Argo Blockchain (ARB) 计划下周在其位于德克萨斯州的旗舰设施开始运营。随后,Argo 股价在伦敦交易中上涨了约 12% 。Argo 拒绝具体说明该矿将于何时开始运营以及产能。“大部分信息必须通过市场披露,”一位发言人说。昨日消息,比特币矿企Argo Blockchain从NYDIG贷款7060万美元购买矿机。[2022/5/5 2:52:14]

funcmain(){

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

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

}

不定参数类型

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

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

法国游戏运营商FDJ推出区块链数字游戏平台Go Mojo:法国游戏运营商La Fran?aise des Jeux(FDJ)推出使用区块链技术的免费数字游戏平台。Go Mojo允许玩家赢取高达10万欧元的奖金,并使用区块链技术增强安全性和数据完整性。玩家可以赚取虚拟货币来支付各种类型的游戏。(Focus Gaming News)[2020/6/25]

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

}

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-3:718ms