Shall we Go ตอนที่ 7 – Variable

ตอนนี้เราจะมาศึกษาเรื่อง Variable หรือ var กัน

Variable Declaration การประกาศตัวแปร

var someInteger int
var someText string
var someDecimal float64
var one, two, three int
var (
	pass bool
	fail bool
)

Variable Declaration with Initialization การประกาศตัวแปรและกำหนดค่าเริ่มต้น

var someInteger int = 10
var someText string = "hello"
var someDecimal = 88.88
var one, two, three = 1, 2, "three"
var (
	pass bool = true
	fail = false
)

ข้อสังเกต: var someDecimal = 88.88 ไม่ต้องระบุ type ก็ได้?

Short Variable Declaration การประกาศตัวแปรแบบสั้นโดยกำหนดค่าเริ่มต้น เพื่อกำหนด Type โดยปริบาย

someInteger := 10
someText := "hello"
someDecimal := 88.88
one, two, three := 1, 2, "three"

หมายเหตุ: เราสามารถเขียนแบบนี้ได้เฉพาะใน Function เท่านั้น

Package Scope Variable ตัวแปรระดับ Package

1
2
3
4
5
6
7
8
9
10
11
12
13
package main
 
import (
	"fmt"
)
 
var packageVar = "some text"
var anotherPackageVar = "another " + packageVar
 
func main() {
	fmt.Println(packageVar)
	fmt.Println(anotherPackageVar)
}

Function Scope Variable ตัวแปรระดับ Function

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main
 
import (
	"fmt"
)
 
func main() {
	var funcVar = "some text"
	fmt.Println(funcVar)
	subFunc("another text")
}
 
func subFunc(myVar string) {
	//Cannot access 'funcVar' from here
	fmt.Println(myVar)
}

หมายเหตุ: myVar string เป็น Variable ที่เป็น Parameter ของ subFunc() และเป็นตัวแปรระดับ Function

Braces Scope Variable ตัวแปรระดับวงเล็บ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main
 
import (
	"fmt"
)
 
func main() {
	{
		var bracesVar = "some text"
		fmt.Println(bracesVar)
	}
 
	if true {
		var bracesVar = "another text"
		fmt.Println(bracesVar)
	}
 
	//Cannot access 'bracesVar' from here
}

ติดตามต่อตอนหน้า มาดู Basic Types กัน

Leave a Reply

Your email address will not be published. Required fields are marked *