第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開(kāi)發(fā)者教程

Go 入門教程

Go 語(yǔ)言基礎(chǔ)教程
01 Go語(yǔ)言簡(jiǎn)介 02 Go 在 Windows 上的安裝及配置 03 Go 在 Linux 上的安裝與配置 04 Go 在 MacOS 上的安裝及配置 05 Git 的下載和安裝 06 VSCode 編輯器安裝和配置 07 Go 的變量聲明 08 Go 的變量賦值 09 Go 語(yǔ)言的 := 10 Go 的整型(int) 11 Go 的無(wú)符號(hào)整型(uint) 12 Go 的浮點(diǎn)型(float) 13 Go 的字符類型 14 Go 的布爾型(bool) 15 Go 的強(qiáng)制類型轉(zhuǎn)換 16 Go 語(yǔ)言的常量 17 Go 語(yǔ)言中代替枚舉的辦法 18 Go 語(yǔ)言中的運(yùn)算符 19 Go 語(yǔ)言的分支語(yǔ)句 20 Go 語(yǔ)言的循環(huán)語(yǔ)句 21 Go 語(yǔ)言的通道 22 Go 語(yǔ)言中的函數(shù) 23 Go 語(yǔ)言函數(shù)中的 defer 24 Go 語(yǔ)言中的閉包 25 Go 語(yǔ)言的指針 26 Go 語(yǔ)言中的數(shù)組 27 Go 語(yǔ)言中的切片 28 Go 語(yǔ)言中的 Map 29 Go 語(yǔ)言中的 range 30 Go 語(yǔ)言拓展以有類型 31 Go 語(yǔ)言中的結(jié)構(gòu)體和"面向?qū)ο?quot; 32 Go 語(yǔ)言中的接口 33 Go 語(yǔ)言類型的內(nèi)嵌 34 Go 語(yǔ)言中的 nil 35 Go 語(yǔ)言函數(shù)式編程 36 Go 語(yǔ)言中的錯(cuò)誤和異常處理 37 Go 語(yǔ)言的并發(fā) 38 Go 語(yǔ)言中的包 39 Go 語(yǔ)言 go mod 包依賴管理工具 40 Go 語(yǔ)言的文件操作 41 Go 語(yǔ)言中的系統(tǒng)包 42 Go 語(yǔ)言的 strings 系統(tǒng)包的使用 43 Go 語(yǔ)言中的變參 44 Go 語(yǔ)言中的反射 45 Go 語(yǔ)言性能測(cè)試 46 使用 Go 語(yǔ)言搭建簡(jiǎn)易登錄功能 47 使用 gin 包優(yōu)化登錄功能
首頁(yè) 慕課教程 Go 入門教程 Go 入門教程 22 Go 語(yǔ)言中的函數(shù)

Go 語(yǔ)言中的函數(shù)

本文來(lái)介紹 Go 語(yǔ)言中的函數(shù)。Go 語(yǔ)言的函數(shù)和其它語(yǔ)言的用法類似,但是 Go 語(yǔ)言中所有東西都是變量,包括函數(shù),函數(shù)在 Go 語(yǔ)言中也是變量的一種,所以函數(shù)名的命名規(guī)則和變量名相同,同時(shí)這個(gè)和我們后面要講解的函數(shù)式編程有關(guān),目前本文僅介紹 Go 語(yǔ)言中函數(shù)的聲明使用。

1. 函數(shù)的定義和使用

Go 語(yǔ)言中,通過(guò) func 關(guān)鍵字來(lái)聲明和定義函數(shù)。Go 語(yǔ)言和 C 語(yǔ)言不同,Go 語(yǔ)言函數(shù)的聲明和定義是一起的,不存在先聲明在定義,且聲明時(shí)不分前后均可互相調(diào)用。

代碼示例

package main

import "fmt"

func print(s string) {
    fmt.Println(s)
}

func main() {
    print("Hello Codey !")

}
  • 第 5 行:聲明并定義一個(gè)名叫 print 的函數(shù),函數(shù)接收一個(gè) string 類型的參數(shù);
  • 第 6 行:函數(shù)體。一個(gè)輸出接收進(jìn)來(lái)參數(shù)的值的語(yǔ)句;
  • 第 9 行:聲明并定義了一個(gè)叫main的函數(shù)。Go 語(yǔ)言中程序的入口就時(shí) main 函數(shù),所有的程序都以main 函數(shù)作為入口;
  • 第 10 行:調(diào)用 print 函數(shù),傳入?yún)?shù)"Hello Codey !"。

執(zhí)行結(jié)果

圖片描述

2. 函數(shù)的返回值

Go 語(yǔ)言的函數(shù)的返回值也有些特殊,它可以一次返回**多個(gè)返回值,**Go 語(yǔ)言中如果是單返回值,可以直接在函數(shù)聲明的括號(hào)后面增加數(shù)據(jù)類型,代碼示例如下:

func Sum(a, b int) int //聲明并定義一個(gè)返回值為int數(shù)據(jù)類型的函數(shù)

若要返回多個(gè)返回值,則需要用括號(hào)包裹返回值,并使用,隔開(kāi)所有返回值,代碼示例如下:

func Sum(a, b int) (int,string) //聲明并定義一個(gè)返回值為int和string數(shù)據(jù)類型的函數(shù)

返回的方式有兩種。一種是用 return 關(guān)鍵字加返回值直接返回,一種是聲明返回值變量,使用返回值變量直接返回。

2.1 使用 return+ 返回值返回

和其它語(yǔ)言不同的是,Go 語(yǔ)言可以一次返回多個(gè)值,多個(gè)值直接跟在 return 關(guān)鍵字之后,使用,隔開(kāi)即可。

代碼示例

package main

import "fmt"

func SumAndProduct(a, b int) (int, int) {
    c := a + b
    d := a * b
    return c, d //同時(shí)返回c和d兩個(gè)變量
}

func main() {
    sum, product := SumAndProduct(1, 2) //接收多返回值的函數(shù)時(shí),也需要用逗號(hào)隔開(kāi)變量
    fmt.Println("a + b =", sum)
    fmt.Println("a * b =", product)
}

執(zhí)行結(jié)果

圖片描述

2.2 使用返回值變量返回

Go 語(yǔ)言還能直接在返回值處聲明變量,這個(gè)變量的作用域是整個(gè)函數(shù),并且會(huì)在 return 的時(shí)候直接返回。

代碼示例

package main

import "fmt"

func SumAndProduct(a, b int) (c int, d int) {
    c = a + b //因?yàn)閏和d函數(shù)返回值處已經(jīng)定義了,可以直接使用
    d = a * b
    return //直接返回,c和d自動(dòng)傳出去
}

func main() {
    sum, product := SumAndProduct(1, 2) //接收多返回值的函數(shù)時(shí),也需要用逗號(hào)隔開(kāi)變量
    fmt.Println("a + b =", sum)
    fmt.Println("a * b =", product)
}

執(zhí)行結(jié)果

圖片描述

3. 小結(jié)

本文主要介紹了 Go 語(yǔ)言中函數(shù)的定義和使用。主要就是和其它語(yǔ)言比起來(lái),Go 語(yǔ)言的函數(shù)更加強(qiáng)大,能夠多參數(shù)返回,返回值更是能直接寫做變量,且作用域?yàn)檎麄€(gè)函數(shù)。