การประกาศตัวแปรใน Go
var, := และการอนุมานชนิดข้อมูล
การประกาศตัวแปรใน Go เป็นบทเรียน Go Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Go Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน
ตัวแปรคืออะไร
ตัวแปรคือตำแหน่งจัดเก็บค่าที่มีชื่อ ใน Go ตัวแปรทุกตัวมีชนิดที่กำหนดตายตัวตั้งแต่ขณะคอมไพล์
- Go เป็นภาษาที่กำหนดชนิดแบบสแตติก — ชนิดจะเปลี่ยนแปลงขณะทำงานไม่ได้
- ตัวแปรจะมีค่าศูนย์เป็นค่าเริ่มต้นเสมอเมื่อไม่ได้กำหนดค่าไว้อย่างชัดเจน
- การตั้งชื่อที่ชัดเจนมีความสำคัญ: Go นิยมใช้ชื่อสั้นและชัดเจนมากกว่าชื่อยาว
การประกาศ var
คีย์เวิร์ด var ใช้ประกาศตัวแปรอย่างชัดเจนหนึ่งตัวหรือหลายตัว:
package main
func main() {
var name string
var age int
var pi float64 = 3.14
_ = name
_ = age
_ = pi
}การประกาศตัวแปรแบบย่อ :=
ภายในฟังก์ชัน คุณสามารถใช้ := เพื่อประกาศและกำหนดค่าแบบกระชับในขั้นตอนเดียว
- ชนิดจะถูกอนุมานจากด้านขวาของการกำหนดค่า
:=ใช้ได้เฉพาะภายในเนื้อฟังก์ชันเท่านั้น- ตัวแปรทางด้านซ้ายอย่างน้อยหนึ่งตัวต้องเป็นตัวแปรใหม่
package main
func main() {
city := "Ankara" // string inferred
count := 42 // int inferred
temp := 36.6 // float64 inferred
_ = city
_ = count
_ = temp
}ค่าศูนย์
Go จะกำหนดค่าศูนย์ให้ตัวแปรที่ประกาศทุกตัวโดยอัตโนมัติ:
int,float64→0string→""(สตริงว่าง)bool→false- พอยน์เตอร์ สไลซ์ แมป และแชนเนล →
nil
ค่าศูนย์ช่วยกำจัดข้อผิดพลาดจากตัวแปรที่ยังไม่ได้กำหนดค่าซึ่งมักพบใน C/C++
การประกาศตัวแปรหลายตัว
ประกาศและกำหนดค่าให้ตัวแปรหลายตัวพร้อมกันได้โดยใช้รูปแบบบล็อกหรือทูเพิล:
package main
var (
host = "localhost"
port = 8080
debug = false
)
func main() {
x, y := 10, 20
_ = x
_ = y
}กฎการอนุมานชนิด
เมื่อใช้ := Go จะอนุมานชนิดจากลิเทอรัล:
- ลิเทอรัลจำนวนเต็ม →
int - ลิเทอรัลจำนวนทศนิยม →
float64 - ลิเทอรัลสตริง →
string - ลิเทอรัลจำนวนเชิงซ้อน →
complex128
หากต้องการชนิดเฉพาะ (เช่น int32) ให้ใช้การประกาศ var อย่างชัดเจนหรือใช้การแปลงชนิด
ตัวแปรระดับแพ็กเกจเทียบกับระดับฟังก์ชัน
ตัวแปรสามารถอยู่ในระดับแพ็กเกจ (ใช้ร่วมกันทั่วทั้งแพ็กเกจ) หรือระดับฟังก์ชัน (ใช้เฉพาะในฟังก์ชัน) ได้:
- ระดับแพ็กเกจ: ใช้
var— เข้าถึงได้จากทุกแห่งในแพ็กเกจ - ระดับฟังก์ชัน: ใช้
:=หรือvar— มองเห็นได้เฉพาะภายในฟังก์ชัน - ควรเลือกใช้ตัวแปรระดับฟังก์ชันเพื่อจำกัดขอบเขตของสถานะ
ตัวระบุว่าง _
ตัวระบุว่าง _ ใช้ทิ้งค่าที่คุณไม่ต้องการ Go กำหนดให้ต้องใช้ตัวแปรที่ประกาศทุกตัว — _ คือช่องทางยกเว้น:
package main
func divide(a, b int) (int, int) {
return a / b, a % b
}
func main() {
quotient, _ := divide(10, 3) // discard remainder
_ = quotient
}การบดบังตัวแปร
การบดบังเกิดขึ้นเมื่อขอบเขตด้านในประกาศตัวแปรที่มีชื่อเดียวกับขอบเขตด้านนอก:
- ตัวแปรด้านในจะบดบังตัวแปรด้านนอกภายในขอบเขตของตน
- สิ่งนี้อาจทำให้เกิดข้อผิดพลาดที่สังเกตได้ยาก — ควรใช้อย่างตั้งใจ
- ใช้
go vetและเครื่องมือตรวจโค้ดอย่างstaticcheckเพื่อตรวจหาการบดบังโดยไม่ตั้งใจ
ข้อผิดพลาดที่พบบ่อยเกี่ยวกับ :=
ระวังข้อผิดพลาดเหล่านี้เกี่ยวกับ :=:
- ใช้
:=ในระดับแพ็กเกจ → เกิดข้อผิดพลาดขณะคอมไพล์ - ตัวแปรทั้งหมดทางด้านซ้ายมีอยู่แล้ว → ให้ใช้
=แทน - บดบังตัวแปรข้อผิดพลาดด้านนอกโดยไม่ตั้งใจในบล็อก if-err
หากไม่แน่ใจ ให้ใช้ var อย่างชัดเจนเพื่อให้อ่านเข้าใจง่าย
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ข้อใดต่อไปนี้เป็นไวยากรณ์การประกาศตัวแปรแบบย่อที่ถูกต้องใน Go
ทบทวน: การประกาศตัวแปร
ตอนนี้คุณทราบวิธีประกาศตัวแปรใน Go แล้ว:
var name type— การประกาศอย่างชัดเจนพร้อมค่าศูนย์var name = value— var พร้อมการอนุมานชนิดname := value— การประกาศแบบย่อภายในฟังก์ชัน- ค่าศูนย์จะถูกกำหนดโดยอัตโนมัติ — ไม่มีสถานะที่ยังไม่ได้กำหนดค่า
_ใช้ทิ้งค่าที่ไม่ต้องการ
ถัดไป: ชนิดในตัวของ Go และค่าศูนย์ของแต่ละชนิดโดยละเอียด
โจทย์ฝึกปฏิบัติ
ลองทำด้วยตัวเอง: ประกาศตัวแปรระดับแพ็กเกจชื่อ appName ชนิด string และตัวแปรระดับฟังก์ชันสำหรับการลองซ้ำโดยใช้ := และกำหนดค่าเป็น 3
โปรดจำไว้ว่า ตัวแปรระดับแพ็กเกจใช้ var และ := ใช้ได้เฉพาะภายในเนื้อฟังก์ชันเท่านั้น
เรียนรู้ Go ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 51
- บทเรียน
- 203
คำถามที่พบบ่อย
บทเรียน “การประกาศตัวแปรใน Go” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การประกาศตัวแปรใน Go” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Go Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การประกาศตัวแปรใน Go”
var, := และการอนุมานชนิดข้อมูล คุณปฏิบัติ Go Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Go Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Go Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การประกาศตัวแปรใน Go” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Go Academy นี้ได้ไหม
ได้ บทเรียน Go Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การประกาศตัวแปรใน Go
- ชนิดข้อมูลในตัวของ Go
- ค่าคงที่และ iota
- การแปลงชนิดข้อมูลใน Go