在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ GO/ Go語言函數(shù)
Go panic錯誤處理實例
Go命令行參數(shù)實例
Go可變參數(shù)的函數(shù)實例
Go通道同步實例
Go非阻塞通道操作實例
Go指針實例
Go數(shù)字解析實例
Go語言指針
Go超時(timeouts)實例
Go速率限制實例
Go信號實例
Go Base64編碼實例
Go計時器實例
Go命令行標志實例
Go原子計數(shù)器實例
Go語言切片
Go隨機數(shù)實例
Go語言類型轉換
Go排序實例
Go時間格式化/解析實例
Go URL解析實例
Go字符串函數(shù)實例
Go語言常量
Go for循環(huán)語句實例
Go函數(shù)多個返回值實例
Go切片實例
Go行過濾器實例
Go語言接口
Go語言數(shù)組
Go語言變量
Go字符串格式化實例
Go斷續(xù)器實例
Go if/else語句實例
Go通道緩沖實例
Go錯誤實例
Go語言映射
Go執(zhí)行過程實例
Go函數(shù)實例
Go有狀態(tài)的goroutines實例
Go按自定義函數(shù)排序實例
Go語言作用域規(guī)則
Go時代(Epoch)實例
Go變量實例
Go互斥體實例
Go語言范圍(range)
Go程序實例
Go語言入門
Go通道路線實例
Go閉包(匿名函數(shù))實例
Go Select實例
Go通道范圍實例
Go集合函數(shù)實例
Hello World程序實例
Go環(huán)境變量實例
Go語言運算符
Go讀取文件實例
Go延遲(defer)實例
Go SHA1哈希實例
Go語言條件和決策
Go語言錯誤處理
Go通道實例
Go指針實例
Go時間日期實例
Go語言字符串
Go語言循環(huán)
Go語言基礎語法
Go語言開發(fā)環(huán)境安裝配置
Go常量實例
Go語言結構體
Go寫文件實例
Go正則表達式實例
Go JSON實例
Go語言教程
Go關閉通道實例
Go接口實例
Go語言遞歸
Go switch語句實例
Go函數(shù)遞歸實例
Go退出程序實例
Go語言程序結構
Go范圍實例
Go語言函數(shù)
Go工作池實例
Go語言數(shù)據類型

Go語言函數(shù)

函數(shù)是一組執(zhí)行任務的語句。 每個Go程序至少有一個函數(shù),也就是main()函數(shù),所有最小的程序可以定義附加的函數(shù)。

可以將代碼分成單獨的函數(shù)。如何在不同的函數(shù)之間劃分代碼取決于程序員,但在邏輯上,通常每個函數(shù)執(zhí)行一個特定的任務。

函數(shù)聲明告訴編譯器有關函數(shù)的名稱,返回類型和參數(shù)。 函數(shù)定義提供了函數(shù)的實際主體。

Go標準庫提供了許多內置的函數(shù),在編寫程序時可以調用。 例如,函數(shù)len()接受各種類型的參數(shù),并返回類型的長度。 例如,如果一個字符串傳遞給它,它將返回字符串的字節(jié)長度,如果一個數(shù)組傳遞給它,它將返回數(shù)組長度,也就是數(shù)組中的元素數(shù)量。

函數(shù)有各種不同的叫法(名稱),如方法子例程過程等。

定義函數(shù)

Go編程語言中函數(shù)定義的一般形式如下:

func function_name( [parameter list] ) [return_types]
{
   body of the function
}

Go編程語言中的函數(shù)定義包括函數(shù)頭和函數(shù)體。這里是一個函數(shù)的所有部分:

  1. func開始一個函數(shù)的聲明。
  2. 函數(shù)名稱(function_name):這是函數(shù)的名稱。函數(shù)名和參數(shù)列表一起構成函數(shù)簽名。
  3. 參數(shù):參數(shù)類似于占位符。 調用函數(shù)時,將一個值傳遞給參數(shù)。 此值稱為實際參數(shù)或參數(shù)。 參數(shù)列表指的是函數(shù)的參數(shù)的類型,順序和數(shù)量。 參數(shù)是可選的; 即,函數(shù)可以不用包含參數(shù)。
  4. 返回類型:函數(shù)可以有返回值列表。return_types是函數(shù)返回的值的數(shù)據類型的列表。某些函數(shù)執(zhí)行所需的操作,而不用(無)返回值。在這種情況下,return_type就不是必需的。
  5. 函數(shù)體:函數(shù)體包含定義函數(shù)的功能的語句集合。

示例

以下是一個名為max()的函數(shù)的源代碼。此函數(shù)使用兩個參數(shù)num1num2,并返回這兩個參數(shù)的最大值:

/* function returning the max between two numbers */
func max(num1, num2 int) int
{
   /* local variable declaration */
   result int

   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result 
}

調用函數(shù)

在創(chuàng)建Go函數(shù)時,需要給出函數(shù)的定義。要使用函數(shù),必須調用該函數(shù)來執(zhí)行定義的任務。
當程序調用一個函數(shù)時,程序控制轉移到被調用的函數(shù)。 被調用函數(shù)執(zhí)行定義的任務,并且在返回語句執(zhí)行時或者到達函數(shù)結束閉包括時,它返回程序控制回到主程序。

要調用函數(shù),只需要傳遞所需的參數(shù)以及函數(shù)名稱,如果函數(shù)返回一個值,那么可以存儲返回的值。 例如:

package main

import "fmt"

func main() {
   /* local variable definition */
   var a int = 100
   var b int = 200
   var ret int

   /* calling a function to get max value */
   ret = max(a, b) // 存儲返回的值到 ret 變量中

   fmt.Printf( "Max value is : %d\n", ret )
}

/* function returning the max between two numbers */
func max(num1, num2 int) int {
   /* local variable declaration */
   var result int

   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result 
}

在這里保持max()函數(shù)與main()函數(shù)一起編譯源代碼。當運行最終可執(zhí)行文件時,它將產生以下結果:

Max value is : 200

從函數(shù)返回多個值

Go函數(shù)可以返回多個值。 例如:

package main

import "fmt"

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("Hippo", "Curry")
   fmt.Println(a, b)
}

當上述代碼編譯和執(zhí)行時,它產生以下結果:

Curry
Hippo

函數(shù)參數(shù)

如果函數(shù)要使用參數(shù),它必須聲明接受參數(shù)值的變量。這些變量稱為函數(shù)的形式參數(shù)。
形式參數(shù)與函數(shù)內部的其他局部變量一樣,在進入函數(shù)時創(chuàng)建,在退出時被銷毀。
在調用函數(shù)時,有兩種方法可以將參數(shù)傳遞給函數(shù):

調用類型 描述
按值調用 此方法將參數(shù)的實際值復制到函數(shù)的形式參數(shù)中。 在這種情況下,對函數(shù)中的參數(shù)所做的更改不會影響參數(shù)的值,退出函數(shù)后參數(shù)的值還是原值。
按引用調用 此方法將參數(shù)的地址復制到形式參數(shù)中。在函數(shù)內部,地址用于訪問在調用中使用的實際參數(shù)。這意味著對參數(shù)所做的更改會影響參數(shù)的值,退出函數(shù)后參數(shù)的值是函數(shù)內部被修改后的值。

默認情況下,Go使用按值調用來傳遞參數(shù)。一般來說,函數(shù)中的代碼不能改變用于調用函數(shù)的參數(shù),所以調用max()函數(shù)使用的也是相同的方法。

函數(shù)用法

函數(shù)用法 描述
函數(shù)作為值使用 函數(shù)可以即時創(chuàng)建,并且可以用作值。
函數(shù)閉包 函數(shù)閉包是匿名函數(shù),可以在動態(tài)規(guī)劃中使用。
方法 方法是使用接收器的特殊函數(shù)。

上一篇:Go通道實例下一篇:Go Base64編碼實例