0Pricing
Kotlin Academy · บทเรียน

val เทียบกับ var: ความไม่เปลี่ยนแปลงตั้งแต่วันแรก

ทำความเข้าใจความแตกต่างระหว่าง val กับ var และเหตุผลที่ความไม่เปลี่ยนแปลงสำคัญ

val เทียบกับ var: ความไม่เปลี่ยนแปลงตั้งแต่วันแรก เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

สองวิธีในการประกาศตัวแปร

Kotlin มีคำหลักสองคำสำหรับประกาศตัวแปร ได้แก่ val สำหรับการอ้างอิงแบบอ่านอย่างเดียว (ไม่เปลี่ยนแปลง) และ var สำหรับการอ้างอิงที่เปลี่ยนแปลงได้ การเลือกให้ถูกต้องมีความสำคัญ

val: การอ้างอิงแบบอ่านอย่างเดียว

val ประกาศการอ้างอิงที่ไม่สามารถกำหนดค่าใหม่หลังจากเริ่มต้นแล้ว ให้คิดว่าคล้ายกับ final ใน Java
val name = "Kotlin"
println(name)
// name = "Java" // Error: Val cannot be reassigned

var: การอ้างอิงที่เปลี่ยนแปลงได้

var ประกาศตัวแปรที่สามารถกำหนดค่าใหม่ได้ ควรใช้ var เฉพาะเมื่อจำเป็นต้องเปลี่ยนค่าอย่างแท้จริง
var counter = 0
counter = 1
counter += 1
println(counter) // 2

การอนุมานชนิดข้อมูล

Kotlin อนุมานชนิดข้อมูลจากค่าเริ่มต้น นอกจากนี้คุณยังเขียนชนิดข้อมูลอย่างชัดเจนหลังเครื่องหมายทวิภาคได้
val age = 25          // inferred: Int
val name: String = "Ana"  // explicit type
var score: Double = 0.0

val ไม่ได้หมายถึงออบเจ็กต์ที่ไม่เปลี่ยนแปลง

val ป้องกันการกำหนดค่าใหม่ให้การอ้างอิง แต่ออบเจ็กต์เองยังเปลี่ยนแปลงได้ ตัวอย่างเช่น MutableList ที่ประกาศด้วย val ยังสามารถเพิ่มรายการได้
val list = mutableListOf(1, 2, 3)
list.add(4)        // OK! list is val but mutable
// list = mutableListOf() // Error: reassignment

เลือกใช้ val เป็นค่าเริ่มต้น

แนวทางการเขียน Kotlin แนะนำให้เลือกใช้ val เป็นค่าเริ่มต้น ทำให้โค้ดปลอดภัยและทำความเข้าใจได้ง่ายขึ้น ควรเปลี่ยนเป็น var เฉพาะเมื่อจำเป็นต้องเปลี่ยนค่า
val pi = 3.14159     // constant value
val greeting = "Hi"  // never changes
var retries = 3      // will be decremented

val เทียบกับ const val

const val ใช้สำหรับค่าคงที่ขณะคอมไพล์ (ชนิดพื้นฐานและ String ที่ระดับบนสุดหรือในออบเจ็กต์/ออบเจ็กต์คู่หู) ส่วน val คือค่าคงที่ขณะทำงาน
const val MAX_SIZE = 100    // compile-time
val instance = MyClass()    // runtime

var ที่ยังไม่เริ่มต้นค่า

คุณสามารถประกาศ var โดยยังไม่เริ่มต้นค่าได้ แต่ MUST ระบุชนิดข้อมูลและกำหนดค่าก่อนใช้งาน ส่วน val ต้องเริ่มต้นค่าเสมอ
var result: String
result = "computed"
println(result)

ขอบเขตและการบดบังชื่อ

ตัวแปรจะอยู่ภายในขอบเขตของบล็อก ขอบเขตด้านในสามารถบดบังตัวแปรจากขอบเขตด้านนอกได้ แต่สิ่งนี้อาจทำให้สับสน จึงควรใช้ชื่อที่สื่อความหมาย
val x = 10
run {
    val x = 20  // shadows outer x
    println(x)  // 20
}
println(x)      // 10

หลักการตั้งชื่อ

Kotlin ใช้ camelCase สำหรับตัวแปรและฟังก์ชัน ค่าคงที่ (const val) ใช้ UPPER_SNAKE_CASE ส่วนคลาสใช้ PascalCase
val firstName = "Jane"     // camelCase
const val MAX_ITEMS = 50   // UPPER_SNAKE_CASE
class UserProfile           // PascalCase

เหตุใดความไม่เปลี่ยนแปลงจึงสำคัญ

ข้อมูลที่ไม่เปลี่ยนแปลงจะปลอดภัยต่อการทำงานหลายเธรดโดยค่าเริ่มต้น ทดสอบได้ง่ายกว่า และลดข้อผิดพลาดจากการเปลี่ยนแปลงที่ไม่คาดคิด ควรถามตัวเองเสมอว่า จำเป็นต้องเปลี่ยนค่านี้หรือไม่

ตรวจสอบอย่างรวดเร็ว

คำหลักใดใช้ประกาศการอ้างอิงแบบอ่านอย่างเดียว (ไม่สามารถกำหนดค่าใหม่ได้) ใน Kotlin

สรุปทบทวน

val = การอ้างอิงแบบอ่านอย่างเดียว, var = เปลี่ยนแปลงได้ ควรเลือกใช้ val การอนุมานชนิดข้อมูลช่วยให้ไม่ต้องระบุชนิดข้อมูลอย่างชัดเจน บทถัดไป: ชนิดข้อมูลในตัวของ Kotlin

คำถามที่พบบ่อย

บทเรียน “val เทียบกับ var: ความไม่เปลี่ยนแปลงตั้งแต่วันแรก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “val เทียบกับ var: ความไม่เปลี่ยนแปลงตั้งแต่วันแรก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “val เทียบกับ var: ความไม่เปลี่ยนแปลงตั้งแต่วันแรก”

ทำความเข้าใจความแตกต่างระหว่าง val กับ var และเหตุผลที่ความไม่เปลี่ยนแปลงสำคัญ คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “val เทียบกับ var: ความไม่เปลี่ยนแปลงตั้งแต่วันแรก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งค่า Kotlin: REPL, IntelliJ และสนามทดลองออนไลน์
  2. val เทียบกับ var: ความไม่เปลี่ยนแปลงตั้งแต่วันแรก
  3. ชนิดข้อมูลพื้นฐานของ Kotlin: Int, Double, Boolean, Char
  4. โปรแกรม Kotlin แรกของคุณ: main, println และการป้อนข้อมูล
← กลับไปที่ Kotlin Academy