您好,登錄后才能下訂單哦!
這篇文章主要介紹“golang函數的返回值如何實現”,在日常操作中,相信很多人在golang函數的返回值如何實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”golang函數的返回值如何實現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
函數可以有0或多個返回值,返回值需要指定數據類型,返回值通過return關鍵字來指定。
return可以有參數,也可以沒有參數,這些返回值可以有名稱,也可以沒有名稱。go中的函數可以有多個返回值。
return關鍵字中指定了參數時,返回值可以不用名稱。如果return省略參數,則返回值部分必須帶名稱
當返回值有名稱時,必須使用括號包圍,逗號分隔,即使只有一個返回值
但即使返回值命名了,return中也可以強制指定其它返回值的名稱,也就是說return的優先級更高
命名的返回值是預先聲明好的,在函數內部可以直接使用,無需再次聲明。命名返回值的名稱不能和函數參數名稱相同,否則報錯提示變量重復定義
return中可以有表達式,但不能出現賦值表達式,這和其它語言可能有所不同。例如return a+b是正確的,但return c=a+b是錯誤的。
沒有返回值
func f1() { fmt.Printf("我沒有返回值,只是進行一些計算") }
有一個返回值
func sum(a int, b int) (ret int) { ret = a + b return ret }
多個返回值,且在return中指定返回的內容
func f2() (name string, age int) { name = "老郭" age = 30 return name, age }
多個返回值,返回值名稱沒有被使用
func f3() (name string, age int) { name = "老郭" age = 30 return // 等價于return name, age }
return覆蓋命名返回值,返回值名稱沒有被使用
func f4() (name string, age int) { n := "老郭" a := 30 return n, a }
Go中經常會使用其中一個返回值作為函數是否執行成功、是否有錯誤信息的判斷條件。例如return value,exists、return value,ok、return value,err等。
當函數的返回值過多時,例如有4個以上的返回值,應該將這些返回值收集到容器中,然后以返回容器的方式去返回。例如,同類型的返回值可以放進slice中,不同類型的返回值可以放進map中。
但函數有多個返回值時,如果其中某個或某幾個返回值不想使用,可以通過下劃線_來丟棄這些返回值。例如下面的f1函數兩個返回值,調用該函數時,丟棄了第二個返回值b,只保留了第一個返回值a賦值給了變量a。
package main import "fmt" func f1() (int, int) { return 1, 2 } func main() { _, x := f1() fmt.Printf("x: %v\n", x) }
運行結果
[Running] go run "d:\SynologyDrive\軟件開發\go\golang入門到項目實戰\goproject\360duote.com\pro01\test.go"
x: 2
到此,關于“golang函數的返回值如何實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。