欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang函數(shù)的返回值實(shí)現(xiàn)

 更新時間:2023年03月08日 11:04:42   作者:COCOgsta  
本文主要介紹了golang函數(shù)的返回值實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

函數(shù)可以有0或多個返回值,返回值需要指定數(shù)據(jù)類型,返回值通過return關(guān)鍵字來指定。

  • return可以有參數(shù),也可以沒有參數(shù),這些返回值可以有名稱,也可以沒有名稱。go中的函數(shù)可以有多個返回值。
  • return關(guān)鍵字中指定了參數(shù)時,返回值可以不用名稱。如果return省略參數(shù),則返回值部分必須帶名稱
  • 當(dāng)返回值有名稱時,必須使用括號包圍,逗號分隔,即使只有一個返回值
  • 但即使返回值命名了,return中也可以強(qiáng)制指定其它返回值的名稱,也就是說return的優(yōu)先級更高
  • 命名的返回值是預(yù)先聲明好的,在函數(shù)內(nèi)部可以直接使用,無需再次聲明。命名返回值的名稱不能和函數(shù)參數(shù)名稱相同,否則報錯提示變量重復(fù)定義
  • return中可以有表達(dá)式,但不能出現(xiàn)賦值表達(dá)式,這和其它語言可能有所不同。例如return a+b是正確的,但return c=a+b是錯誤的。

go語言函數(shù)返回值實(shí)例

沒有返回值

func f1() {
    fmt.Printf("我沒有返回值,只是進(jìn)行一些計算")
}

有一個返回值

func sum(a int, b int) (ret int) {
    ret = a + b
    return ret
}

多個返回值,且在return中指定返回的內(nèi)容

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中經(jīng)常會使用其中一個返回值作為函數(shù)是否執(zhí)行成功、是否有錯誤信息的判斷條件。例如return value,exists、return value,ok、return value,err等。

當(dāng)函數(shù)的返回值過多時,例如有4個以上的返回值,應(yīng)該將這些返回值收集到容器中,然后以返回容器的方式去返回。例如,同類型的返回值可以放進(jìn)slice中,不同類型的返回值可以放進(jìn)map中。

但函數(shù)有多個返回值時,如果其中某個或某幾個返回值不想使用,可以通過下劃線_來丟棄這些返回值。例如下面的f1函數(shù)兩個返回值,調(diào)用該函數(shù)時,丟棄了第二個返回值b,只保留了第一個返回值a賦值給了變量a。

package main
 
import "fmt"
 
func f1() (int, int) {
    return 1, 2
}
func main() {
    _, x := f1()
    fmt.Printf("x: %v\n", x)
}

運(yùn)行結(jié)果

[Running] go run "d:\SynologyDrive\軟件開發(fā)\go\golang入門到項(xiàng)目實(shí)戰(zhàn)\goproject\360duote.com\pro01\test.go"
x: 2

到此這篇關(guān)于golang函數(shù)的返回值實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)golang函數(shù)返回值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang實(shí)現(xiàn)HTTP編程請求和響應(yīng)

    Golang實(shí)現(xiàn)HTTP編程請求和響應(yīng)

    本文主要介紹了Golang實(shí)現(xiàn)HTTP編程請求和響應(yīng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • go的切片擴(kuò)容機(jī)制詳解

    go的切片擴(kuò)容機(jī)制詳解

    本文主要介紹了go的切片擴(kuò)容機(jī)制詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 深入分析golang多值返回以及閉包的實(shí)現(xiàn)

    深入分析golang多值返回以及閉包的實(shí)現(xiàn)

    相對于C/C++,golang有很多新穎的特性,例如goroutine,channel等等,這些特性其實(shí)從golang源碼是可以理解其實(shí)現(xiàn)的原理。今天這篇文章主要來分析下golang多值返回以及閉包的實(shí)現(xiàn),因?yàn)檫@兩個實(shí)現(xiàn)golang源碼中并不存在,我們必須從匯編的角度來窺探二者的實(shí)現(xiàn)。
    2016-09-09
  • go責(zé)任鏈行為型設(shè)計模式Chain?Of?Responsibility

    go責(zé)任鏈行為型設(shè)計模式Chain?Of?Responsibility

    這篇文章主要為大家介紹了go行為型設(shè)計模式之責(zé)任鏈Chain?Of?Responsibility使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • mayfly-go部署和使用詳解

    mayfly-go部署和使用詳解

    這篇文章主要介紹了mayfly-go部署和使用詳解,此處部署基于CentOS7.4部署,結(jié)合實(shí)例代碼圖文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Go語言字典(map)用法實(shí)例分析【創(chuàng)建,填充,遍歷,查找,修改,刪除】

    Go語言字典(map)用法實(shí)例分析【創(chuàng)建,填充,遍歷,查找,修改,刪除】

    這篇文章主要介紹了Go語言字典(map)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Go語言字典的創(chuàng)建、填充、遍歷、查找、修改、刪除等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-02-02
  • golang敏感詞過濾的實(shí)現(xiàn)

    golang敏感詞過濾的實(shí)現(xiàn)

    本文主要介紹了golang敏感詞過濾的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Go語言中的init函數(shù)特點(diǎn)及用法詳解

    Go語言中的init函數(shù)特點(diǎn)及用法詳解

    在Go語言中,init()函數(shù)是一種特殊的函數(shù),用于在程序啟動時自動執(zhí)行一次。它的存在為我們提供了一種機(jī)制,可以在程序啟動時進(jìn)行一些必要的初始化操作,為程序的正常運(yùn)行做好準(zhǔn)備,在這篇文章中,我們將詳細(xì)探討init()函數(shù)的特點(diǎn)、用途和注意事項(xiàng)
    2023-06-06
  • Go內(nèi)置序列化庫gob的使用

    Go內(nèi)置序列化庫gob的使用

    本文主要介紹了Go內(nèi)置序列化庫gob的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • golang將切片或數(shù)組根據(jù)某個字段進(jìn)行分組操作

    golang將切片或數(shù)組根據(jù)某個字段進(jìn)行分組操作

    這篇文章主要介紹了golang將切片或數(shù)組根據(jù)某個字段進(jìn)行分組操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論