定义格式
函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。
Go语言函数定义格式如下:
funcFuncName(/*参数列表*/)(o1type1,o2type2/*返回类型*/){
//函数体、
returnv1,v2//返回多个值
}
函数定义说明:
func:函数由关键字func开始声明
FuncName:函数名称,根据约定,函数名首字母小写即为private,大写即为public
参数列表:函数可以有0个或多个参数,参数格式为:变量名类型,如果有多个参数通过逗号分隔,不支持默认参数
返回类型:
① 上面返回值什么两个变量名,当然这不是必须的,可以有类型,没变量。② 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号。③ 如果没有返回值,那么就直接省略最后的返回信息。④ 如果有返回值,那么必须在函数的内部添加return语句
Argo Blockchain 1月共产出168枚比特币,环比增长14%:金色财经报道,比特币矿企 Argo Blockchain 1 月共产出 168 枚比特币(或比特币等价物),环比增长 14%。截至 2023 年 1 月 31 日,公司持有 115 枚比特币(或比特币等价物),总算力仍为 2.5 EH/s。[2023/2/8 11:54:42]
函数定义
无参无返回值
funcTest(){//无参无返回值函数定义
fmt.Println("thisisatestfunc")
}
funcmain(){
Test()//无参无返回值函数调用
}
有参无返回值
普通参数列表
funcTest01(v1int,v2int){//方式1
加密企业Protego Trust任命Brian Brooks及Michael Carpenter为董事会成员:2月16日消息,获得美国货币监理署(OCC)临时银行执照的三家加密公司之一的Protego Trust已任命前OCC代理署长、现任Bitfury首席执行官Brian Brooks以及前数字银行Ally Financial首席执行官Michael Carpenter为其董事会成员。Protego表示,这两项任命加强了“董事会在数字资产、监管合规和银行运营方面的专业知识,该银行即将完成向联邦特许国家银行的转换过程。”(CoinDesk)[2022/2/16 9:55:07]
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)
加密矿企Argo Blockchain探索纳斯达克二次上市可能性:7月6日消息,加密矿企Argo Blockchain在公布其6月份运营更新时宣布,可能会在纳斯达克增加二次上市计划。该公司表示,在全球加密货币领域发生 \"大变化 \"之后,它正在探索在证券交易所进行二次上市的可能性。据悉,Argo Blockchain 6月份共挖出了167枚比特币,今年总量已达883枚BTC。(Bdaily )[2021/7/6 0:30:36]
}
funcmain(){
Test01(10,20)//函数调用
Test02(11,22)//函数调用
}
不定参数类型
不定参数是指函数传入的参数个数为不定数量。为了做到这点,首先需要将函数定义为接受不定参数类型:
//形如...type格式的类型只能作为函数的参数类型存在,并且必须是最后一个参数funcTest(args...int){
动态 | Stellar发布Go SDK v.1.3.0更新版本:Stellar发布推文称,刚刚为Stellar区块链网络发布了Go SDK v.1.3.0更新版本。新版本变更内容包括,提高签名和建立交易时的灵活性,提高在签名前导出事务的能力。[2019/7/10]
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{//遍历参数列表
Bernstein 分析师 Inigo Fraser-Jenkins称虚拟货币的规模和流动性不适合机构资产配置:Bernstein 分析师 Inigo Fraser-Jenkins称,虚拟货币的规模和流动性不适合机构资产配置,而与环境、社会和政府相关的担忧很可能令许多养老金将比特币拒之门外。据该分析师测算,比特币的回报率必须达到每月5%或以上,对于优化投资组合来说才是有意义的。这是一个非常高的回报水平,即便是在没有考虑其他风险的情况下。(彭博)[2018/1/22]
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
}
标签:
在市场整体走熊的背景下,相对于广泛参与投资活动,Web3从业人员开始更加倾向于从事基础设施的开发工作以及下轮牛市的整体布局。因此,Web3开发人员的活动频率正在以肉眼可见的速度爆炸式增长.
1900/1/1 0:00:00为什么去中心化市场很难提高资本效率?随着DeFi市场的发展,协议在管理其资产和支出承诺方面的需求越来越复杂.
1900/1/1 0:00:00Shibarium是最受期待的第2层解决方案,投资者渴望开始交易,从而实现销毁并提供以低Gas费购买SHIB代币的窗口。然而,已经过去近两年了,Shibarium仍未见到曙光.
1900/1/1 0:00:00大约三个月前,74种人工智能驱动的数字货币市值超过40亿美元。然而,从那时起,以AI为中心的加密货币市场损失了超过10亿美元的价值.
1900/1/1 0:00:00领先的加密货币比特币(BTC)已大幅接近30,000美元的水平,其价值在夜间开始记录。在比特币触及近几个月的最高价格水平后,加密货币市场在夜间反弹.
1900/1/1 0:00:00自2009年问世以来,第一种加密货币比特币(BTC)就引发了激烈的争论和猜测。它最初是一种小众数字货币,现在将自己定位为经历了起伏的主要金融资产.
1900/1/1 0:00:00