定义格式
函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。
Go语言函数定义格式如下:
funcFuncName(/*参数列表*/)(o1type1,o2type2/*返回类型*/){
//函数体、
returnv1,v2//返回多个值
}
函数定义说明:
func:函数由关键字func开始声明
FuncName:函数名称,根据约定,函数名首字母小写即为private,大写即为public
参数列表:函数可以有0个或多个参数,参数格式为:变量名类型,如果有多个参数通过逗号分隔,不支持默认参数
返回类型:
① 上面返回值什么两个变量名,当然这不是必须的,可以有类型,没变量。② 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号。③ 如果没有返回值,那么就直接省略最后的返回信息。④ 如果有返回值,那么必须在函数的内部添加return语句
Mango Markets将改变多重签名功能以减轻安全威胁:2月24日消息,基于Solana的借贷和交易协议Mango Markets在其v4版本推出之前宣布了两项新功能,重点是缓解直接的安全威胁。为了避免再次遭到黑客攻击或利用,Mango Markets将对多重签名钱包施加新的限制,这将允许开发人员对“不可预见的市场动态”和程序代码中的任何漏洞做出响应。
Mango Markets预计将在未来几个月内将其v4产品置于测试模式,但具体日期尚未确定。[2023/2/24 12:27:50]
函数定义
无参无返回值
funcTest(){//无参无返回值函数定义
fmt.Println("thisisatestfunc")
}
funcmain(){
Test()//无参无返回值函数调用
}
律师事务所Rosen计划对比特币矿企Argo Blockchain提起集体诉讼:2月13日消息,律师事务所Rosen计划对比特币矿企Argo Blockchain提起集体诉讼,正在调查潜在索赔名单,鼓励在Argo损失超过10万美元的投资者联系该律所,并提醒投资者在针对Argo提起的联邦证券集体诉讼中寻求首席原告角色的截止日期为2023年3月27日。
金色财经此前报道,ArgoBlockchain去年曾因财务问题濒临破产,2022年12月28日,Argo Blockchain同意向Galaxy Digital以6500万美元价格出售其位于德州的Helios采矿设施,以避免破产。[2023/2/13 12:02:48]
有参无返回值
普通参数列表
funcTest01(v1int,v2int){//方式1
fmt.Printf("v1=%d,v2=%d\n",v1,v2)
}
Argo Blockchain将在纳斯达克发行750万股ADS 预计融资约1亿英镑:9月14日消息,英国上市矿企Argo Blockchain将在纳斯达克发行美国存托股票 (ADS),以目前的市场价格,这将筹集约1亿英镑。该公司在一份声明中表示,将在计划的首次公开募股中出售750万股美国存托股票,每份ADS包括10股Argo普通股(周一收盘价为131便士)。(Proactive Investors)[2021/9/14 23:23:55]
funcTest02(v1,v2int){//方式2,v1,v2都是int类型
fmt.Printf("v1=%d,v2=%d\n",v1,v2)
}
funcmain(){
Test01(10,20)//函数调用
Test02(11,22)//函数调用
}
不定参数类型
Argo Blockchain 6月共挖出180枚比特币:伦敦上市矿企Argo Blockchain PLC表示,已偿还去年的一笔债务,只剩下今年最近购买750台比特大陆Z11矿机相关的债务。
在6月份,Argo挖出180枚比特币,而5月份为252枚,6月份的挖矿收入为141万英镑,高于5月份的193万英镑。与此同时,该公司的月平均挖矿利润率约为27%,而前一个月为34%。Argo表示,开采的比特币数量和利润减少的主要原因是6月份是减半后的第一个月,月中挖矿难度增加,以及对更具成本效益的挖矿方式进行调整。该公司还报告称,根据其资产管理战略,截至6月底,该公司持有118枚比特币,而其总挖矿能力目前基于18000台矿机,比2019年底增加244%。(Proactiveinvestors)[2020/7/7]
不定参数是指函数传入的参数个数为不定数量。为了做到这点,首先需要将函数定义为接受不定参数类型:
//形如...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
}
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。