iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
自我挑戰組

轉職未滿一年的點點滴滴系列 第 7

[Day 7] -『 GO語言學習筆記』- 指標函式設計 & 常數(constants)

以下筆記摘錄自『 The Go Workshop 』。

採用指標的函式設計

如果變數是指標,或者傳遞給函式的是指標變數,那麼在函式中對該參數的值做任何變動,會連帶影響到函式外部原始變數的值。

For example,

package main

import "fmt"

func add5Value(count int) {
	count += 5
	fmt.Println("add5Value     :", count)
}

func add5Point(count *int) {
	*count += 5
	fmt.Println("add5Point     :", *count)
}

func main() {
	var count int
	add5Value(count)
	fmt.Println("add5Value post:", count)
	add5Point(&count)
	fmt.Println("add5Point post:", count)
}

輸出結果為:

add5Value     : 5
add5Value post: 0
add5Point     : 5
add5Point post: 5

以值傳遞變數時,在函式內對變數做的變動只在函式內有效,不會影響傳遞給函式的原始變數,然而若是以指標形式傳入函式,就會改變原始變數!

常數

常數宣告跟var很類似,但改用const。宣告常數時,初始值是『必要的』,型別可有可無,不指定型別,Go語言會自行推斷。也可以像var一樣,用一個const同時宣告多個常數。

const <常數> <型別> = <值>

const (
    <常數 1> <型別 1> = <值 1>
    <常數 2> <型別 2> = <值 2>
    ...
    <常數 N> <型別 N> = <值 N>

上一篇
[Day 6] -『 GO語言學習筆記』- 值 vs. 指標(pointers)
下一篇
[Day 8] -『 GO語言學習筆記』- 列舉(enums) & 變數作用範圍(Scope)
系列文
轉職未滿一年的點點滴滴30

尚未有邦友留言

立即登入留言