形參變量在未出現函數調用時并不占用內存,只在調用時才占用,調用結束后將釋放內存。形參全稱“形式參數”,是函數定義時使用的參數;但函數定義時參數是沒有任實際何數據的,因而在函數被調用前沒有為形參分配內存,其作用是說明自變量的類型和形態以及在過程中的作用。
本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
函數是組織好的、可重復使用的、用來實現單一或相關聯功能的代碼段,其可以提高應用的模塊性和代碼的重復利用率。
函數定義和函數調用
函數構成了代碼執行的邏輯結構,在Go語言中,函數的基本組成為:關鍵字 func、函數名、參數列表、返回值、函數體和返回語句,每一個程序都包含很多的函數,函數是基本的代碼塊。
定義語法:
func 函數名(形參列表)(返回值類型列表) { 函數體,通常會有return語句,返回值 }
-
函數名:函數的標識符,用于找到函數,內部是一個指向函數代碼的地址。
-
形參列表:由變量和類型構成
-
返回值類型列表:函數返回值的類型,多個返回值需要指定多個。
-
函數體:實現函數功能的具體語句。 return語句:返回值語句
函數調用語法:
函數名(實參列表)
函數參數
用于在調用函數時向函數傳遞數據。
-
實參,實際參數。調用時給的參數。指的是具有的特定實際數據的參數。
-
形參,形式參數。定義時使用的參數。指的是用來表示函數需要參數,而定義時參數是沒有任實際何數據的。 函數/方法在被調用前沒有為他們分配內存,其作用是說明自變量的類型和形態以及在過程中的作用。
實參與形參的關系:形參只能是變量(要指明它的數據類型);實參可以是變量、常量或者表達式。
實參與形參的個數、位置以及它們對應的數據類型應當一致。
當調用時會發生使用實參為形參變量賦值的過程,稱為參數的傳遞。在函數的執行期間,形參是有具體數據的,形參當于函數內聲明的變量。參數的傳遞,分為值傳遞,地址傳遞兩種方式。地址傳遞時,需要形參定義為指針類型,調用時需要取得地址傳參。
-
調用函數時若出現實參是數組名,則傳遞給形參的時數組的首地址。
-
實參傳遞給形參是單向傳遞。形參變量在未出現函數調用時并不占用內存,只在調用時才占用。調用結束后將釋放內存。
示例代碼:
func funcTest(p1 int, p2 *int) { p1++ *p2++ fmt.Println(p1, *p2) } func main() { var ( a1 = 42 a2 = 42 ) funcTest(a1, &a2) // 參數賦值過程 fmt.Println(a1, a2) }
以上會輸出
43 43 42 43
【