定义格式
函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。
Go语言函数定义格式如下:
funcFuncName(/*参数列表*/)(o1type1,o2type2/*返回类型*/){
//函数体、
returnv1,v2//返回多个值
}
函数定义说明:
func:函数由关键字func开始声明
FuncName:函数名称,根据约定,函数名首字母小写即为private,大写即为public
参数列表:函数可以有0个或多个参数,参数格式为:变量名类型,如果有多个参数通过逗号分隔,不支持默认参数
返回类型:
① 上面返回值什么两个变量名,当然这不是必须的,可以有类型,没变量。② 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号。③ 如果没有返回值,那么就直接省略最后的返回信息。④ 如果有返回值,那么必须在函数的内部添加return语句
LBank蓝贝壳今晚20:00将启动DoraFactory(DORA)代币售卖:据官方消息,LBank将于今日 20:00-3月22日 14:00启动等值60,000USDT的DoraFactory(DORA)代币售卖。本次总售卖数量为6000枚DORA,售卖价格为10 DORA/USDT。
本次售卖分“LBK专场”和“USDT专场”两场,售卖认购模式为加权均分模式,用户需持有相应的USDT及LBK。完成售卖后预计将于3月22日18:00上线交易。
DoraFactory(DORA)是基于波卡的 DAO 即服务基础设施,基于 Substrate 的开放、可编程的链上治理协议平台,为新一代去中心化组织和开发者提供二次方投票、曲线拍卖、Bounty 激励、跨链资产管理等可插拔的治理功能。同时,开发者可以向这个 DAO 即服务平台提交新的治理模块,并获得持续的激励。[2021/3/21 19:05:24]
函数定义
无参无返回值
历史上的今天丨Facebook注册新金融科技公司 业务涉及区块链:2019年5月18日,根据日内瓦商业登记处的一份文件,社交媒体巨头Facebook已经成立了一家新的金融科技公司Libra Networks LLC。根据官方文件,该公司提供金融和技术领域的服务,以及软件和相关基础设施的开发和生产,特别是与投资活动、支付运作、融资、身份管理、数据分析、大数据、区块链和其他技术相关的。
2019年5月18日,日本金融厅公开了于3月27日、28日举行的区块链封闭圆桌会议的简要记录。会议讨论内容包括: 1. 如何在监管机构、商界、投资者、学术界等不同利益相关方之间进行有效合作,以便在享受利益的同时降低使用区块链分布式金融体系带来的风险; 2. 如何设计合适的方法,使监管机构能够适应快节奏的技术发展; 3. 在公共区块链上进行金融交易的隐私和及追溯性问题; 4. 与会者指出,监管方可能不得不考虑要求受监管的金融机构只使用可审计的区块链; 5. 区块链生态系统的最新发展:如不同司法管辖区间的监管方案比较;潜在及实际的应用案例,包括通证经济、贸易融资、央行数字货币(CBDC)及加密资产交易市场等。[2020/5/18]
funcTest(){//无参无返回值函数定义
声音 | 前Consensys金融科技负责人:Facebook将统治加密支付:前Consensys金融科技和监管科技负责人、比特币基金会法律顾问Juan Llanos表示,“当Libra在6月中旬被宣布…看完白皮书后想到的第一件事显然是支付用例已经是他们的了。”他在视频中探索了Libra可能会改变的事情。他表示,Facebook在未来几年里基本上会垄断支付市场,并警告初创企业要专注于兑换货币和创造钱包支持其他货币。[2019/7/18]
fmt.Println("thisisatestfunc")
}
funcmain(){
Test()//无参无返回值函数调用
}
有参无返回值
普通参数列表
funcTest01(v1int,v2int){//方式1
fmt.Printf("v1=%d,v2=%d\n",v1,v2)
声音 | 美联储主席:在Facebook解决监管问题前不应允许推出Libra:据coindesk报道,美联储主席杰罗姆鲍威尔周三在众议院金融服务委员会的听证会上表示,在Facebook详细说明如何处理一系列监管问题之前,不应允许其推出加密货币Libra。鲍威尔表示,他认为,如果没有对Facebook处理问题的方式感到满意,就无法允许其继续前进。此外据路透社报道,鲍威尔补充说,Libra也引发了有关金融稳定和消费者保护方面的“许多严重担忧”。美联储显然已经建立了一个跟踪Libra发展的工作组,并且正在与其他国家的中央银行合作。[2019/7/11]
}
funcTest02(v1,v2int){//方式2,v1,v2都是int类型
fmt.Printf("v1=%d,v2=%d\n",v1,v2)
}
funcmain(){
Test01(10,20)//函数调用
声音 | 纽约时报记者:Facebook加密货币项目正向风投公司寻求投资:据cryptoinsider报道,根据4月8日的一系列推文,纽约时报记者和加密影响者Nathaniel Popper称,有消息来源告诉他,Facebook现在正在寻求让风险投资公司投资于其加密货币项目。听说他们的目标很大,高达10亿美元。Popper表示,鉴于区块链项目的一大优势是权力下放,外部投资者可以帮助Facebook将该项目更加去中心化,而不是受Facebook控制。此外,Facebook正在讨论将这些投资作为加密货币的抵押品。[2019/4/9]
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
}
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。