定義格式
函數構成代碼執行的邏輯結構。在Go語言中,函數的基本組成為:關鍵字func、函數名、參數列表、返回值、函數體和返回語句。
Go語言函數定義格式如下:
funcFuncName(/*參數列表*/)(o1type1,o2type2/*返回類型*/){
//函數體、
returnv1,v2//返回多個值
}
函數定義說明:
func:函數由關鍵字func開始聲明
FuncName:函數名稱,根據約定,函數名首字母小寫即為private,大寫即為public
參數列表:函數可以有0個或多個參數,參數格式為:變量名類型,如果有多個參數通過逗號分隔,不支持默認參數
返回類型:
① 上面返回值什么兩個變量名,當然這不是必須的,可以有類型,沒變量。② 如果只有一個返回值且不聲明返回值變量,那么你可以省略,包括返回值的括號。③ 如果沒有返回值,那么就直接省略最后的返回信息。④ 如果有返回值,那么必須在函數的內部添加return語句
BitGo Prime已恢復支持XRP交易:7月14日消息,加密貨幣交易所和加密托管機構BitGo宣布,重新上線XRP,BitGo Prime已支持XRP交易。[2023/7/15 10:56:09]
函數定義
無參無返回值
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類型
NEAR加入Flamingo DAO,將為NFT生態發展助力:11月2日,NEAR基金會官方宣布,以正式成員的身份加入了Flamingo DAO。同時,NiMAAsghari將代表NEAR社區委員會與Flamingo DAO組織成員接洽。Flamingo DAO(弗拉明戈去中心化自治組織)是LAO社區孵化的首個NFT主題的去中心化自治組織(DAO),Flamingo將支持不斷擴大的NFT生態,將DAO的蜂巢思維方法應用于這個新興領域中。[2020/11/2 11:25:37]
fmt.Printf("v1=%d,v2=%d\n",v1,v2)
}
funcmain(){
Test01(10,20)//函數調用
Test02(11,22)//函數調用
}
不定參數類型
不定參數是指函數傳入的參數個數為不定數量。為了做到這點,首先需要將函數定義為接受不定參數類型:
動態 | Argo Blockchain第三季度收入363萬英鎊 較上季度增長75%:倫交所上市挖礦公司Argo Blockchain(LSE: ARB)公布了2019年第三季度的營收狀況。該公司第三季度的加密貨幣挖礦業務收入為363萬英鎊,較第二季度增長75%,挖礦業務利潤率約為73%。公司認為這是市場上效率最高的資產之一。盡管挖礦難度和算力有所上升,比特幣價格最近也有所下滑,但仍實現了這一利潤率。(Advfn)[2019/10/8]
//形如...type格式的類型只能作為函數的參數類型存在,并且必須是最后一個參數funcTest(args...int){
for_,n:=rangeargs{//遍歷參數列表
fmt.Println(n)
}
}
funcmain(){
//函數調用,可傳0到多個參數
Test()
動態 | Nebulas宣布成立社區協助平臺Go Nebulas:3月26日,Nebulas官方推特宣布成立社區協助平臺Go Nebulas。[2019/3/27]
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)
主網啟動 Go or No Go 將在明早 9 時再次進行:今日會議最終結果確定:No Go. 本次投票中投 No Go 的節點是27個,英文社區 25 個,中文社區 2 個。主要原因是這些節點中部分認為應該等待 1.0.2 版本出來之后再決定,其他投 No Go 的節點也大多給出了原因。北京時間 6 月 9 日早上 9 時繼續在 Zoom 上投票。[2018/6/8]
}
}
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
}
以太坊處于一個可能很快爆發的對稱三角形中。在4小時圖上,EMA的死亡交叉保持完好,確認近期趨勢看跌。相對于BTC,ETH價格仍高于0.382斐波那契支撐位,約為0.0716BTC.
1900/1/1 0:00:00世界上有幾個國家一直在重新考慮國際結算的貨幣或支付方式。一方面,他們中的許多人打算減少美元對交易的影響。另一方面,還有其他國家為接受加密貨幣定居點敞開了大門.
1900/1/1 0:00:001)中心化身份模型:就像你擁有一個實體帳戶一樣簡單。通常,你有一個用戶名和密碼來訪問應用程序服務。我們也可以將此模型稱為基于帳戶的身份.
1900/1/1 0:00:00使用比特幣作為法定貨幣意味著什么?除非公民可以證明他們無法獲得必要的技術,否則如果BTC在其各自管轄范圍內被視為法定貨幣,他們可以使用比特幣作為支付方式.
1900/1/1 0:00:00隨著行業傾向于儲備證明,一個有趣的發展已經發生。正如Crypto.com的初步審計顯示其20%的資產在ShibaInu中.
1900/1/1 0:00:00OpenSea推出新工具套件,為NFT發布提供一站式服務:金色財經報道,OpenSea推新工具套件,讓人們或品牌推出自己的NFT項目.
1900/1/1 0:00:00