golang基礎學習 函式

2021-09-01 12:25:51 字數 2788 閱讀 4515

函式

函式是結構化程式設計中最小的模組單元,日常開發過程中,將複雜的演算法過程分解為若干個小任務(**塊),使程式的結構性更清晰,程式可讀性提公升,易於後期維護和讓別人讀懂你的**。編寫多個函式的主要目的是將乙個需要很多行**的複雜問題分解為一系列簡單的任務(那就是函式)來解決。在實際程式設計中,我們把重複性的任務抽象成乙個函式。

和所有的程式語言一樣,go語言支援各種風格的函式。在go語言中,當函式執行到**塊最後一行}之前或者return語句的時候會退出,其中 return 語句可以帶有零個或多個引數;這些引數將作為返回值供呼叫者使用。簡單的 return 語句也可以用來結束 for 死迴圈,或者結束乙個go協程(goroutine)。

定義語法

go語言中函式基本組成:關鍵字func、函式名、引數列表、返回值、函式體和返回語句。

語法如下:

func 函式名(引數列表) (返回值列表)
這裡需要強調的是,go語言函式的返回值型別和變數定義的資料型別一樣,都要遵循go語言的「後置原則」放在後面,這一點和c語言函式定義有顯著不同。

另外,go語言函式定義中如果引數列表中若干個相鄰引數的型別相同,則可以在引數列表中省略前面的變數型別宣告。

func add(a, b int) int
最後,go語言函式定義中左花括號的位置被強制規範,如果左花括號放置不規範,golang編譯器會報編譯錯誤。

//錯誤!!!左括號必須緊跟在括號後面

func hello()

多值返回

go語言的函式可以返回不止乙個結果,即支援「多值返回」。

go語言函式多值返回一般用於處理錯誤。比如在io操作時候,不一定每次都能成功:可能檔案不存在或者磁碟損壞無法讀取檔案。所以一般在函式呼叫發生錯誤時返回乙個附加的結果作為錯誤值,習慣上將錯誤值作為最後乙個結果返回。

func sumproductdiff(i, j int) (int, int, int)
不定引數

如果你對python比較熟悉,你會知道python函式引數個數可以是不確定的。和python類似,go語言函式也支援可變的引數個數。

在引數列表的最後型別名稱前面使用省略號「…」來表示宣告乙個變長函式,呼叫該函式的時候可以傳遞該型別任意數目的引數。

func 函式名(args ...type) (返回值列表)
函式呼叫

package main

import "fmt"

func main()

/* 函式返回兩個數的最大值 */

func max(num1, num2 int) int else

return result

}

最大值是 : 200
示例

package main 

import(

"fmt"

) func add(i int, j int) (int)

func add_multi_sub(i, j int) (int, int, int)

func sum(nums ...int)

fmt.println(total)

} func main()

var c int = add(a,b)

fmt.println("-----------------------")

d,e,f := add_multi_sub(a,b)

fmt.println("-----------------------")

fmt.println(c,d,e,f)

fmt.println("-----------------------")

fmt.println("\n")

sum(arr...) //注意傳參形式

}

結果

楊輝三角

package main

import "fmt"

//行數

const lines int = 10

// 楊輝三角

乘法表

package main

golang基礎 函式

函式func 函式名 引數列表 返回值列表 func funcname input1 type1,input2 type2 output1 type1,output2 type2 1 關鍵字 func 用來宣告乙個函式 funcname 2 函式可以有乙個或者多個引數,每個引數後面帶有型別,多個引數...

Golang學習 基礎

一 helloworld 首先是helloworld package main import fmt func main 編譯和執行 go buid hello.go hello 二 變數,常量 1.定義乙個變數 var a int var b int 10 c 10 等價於var c int 10...

golang基礎學習

golang語言基礎保留的關鍵字 1.golang語言的保留關鍵字 2.golang的基礎語法 package 3.golang的基礎語法 import import語法格式主要有兩種 如果乙個main匯入其他包,包將按順序依次匯入 如果匯入的包中依賴其他包 b包 會首先匯入b包,然後初始化b包中的...