Scala for Backend Engineering & Functional Programming · บทเรียน

val, var และชนิด

การผูกค่าและการอนุมานชนิด

บทเรียน 2 จาก 413 ขั้นตอน

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

การผูกชื่อใน Scala

ใน Scala คุณตั้งชื่อให้ค่าโดยใช้ การผูกชื่อ คีย์เวิร์ดทั้งสองคือ val และ var

val ไม่เปลี่ยนแปลงค่าได้ (ไม่สามารถกำหนดค่าใหม่ให้ได้) ส่วน var เปลี่ยนแปลงค่าได้ (สามารถกำหนดค่าใหม่ให้ได้)

การประกาศ val

val จะผูกชื่อเข้ากับค่าหนึ่งครั้ง การพยายามกำหนดค่าใหม่ให้จะทำให้เกิดข้อผิดพลาดระหว่างคอมไพล์

โดยทั่วไปควรเลือกใช้ val ความไม่เปลี่ยนแปลงทำให้ทำความเข้าใจโค้ดได้ง่ายขึ้น

object Main {
  def main(args: Array[String]): Unit = {
    val name = "Ada"
    println(name)
  }
}

การประกาศ var

var สามารถกำหนดค่าใหม่ได้ด้วย = ใช้เมื่อคุณจำเป็นต้องมีสถานะที่เปลี่ยนแปลงได้อย่างแท้จริงเท่านั้น

โปรดสังเกตว่าค่าใหม่ยังคงต้องมีชนิดข้อมูลตรงกับชนิดข้อมูลเดิม

object Main {
  def main(args: Array[String]): Unit = {
    var count = 0
    count = count + 1
    count = count + 1
    println(count)
  }
}

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

โดยทั่วไป Scala จะหาชนิดข้อมูลให้คุณเอง การเขียน val x = 42 จะทำให้ x เป็น Int โดยอัตโนมัติ

สิ่งนี้เรียกว่า การอนุมานชนิดข้อมูล คุณจึงได้ประโยชน์จากการกำหนดชนิดข้อมูลแบบสถิติโดยไม่ต้องเขียนชนิดข้อมูลทุกครั้ง

object Main {
  def main(args: Array[String]): Unit = {
    val x = 42
    val pi = 3.14
    val flag = true
    println(x)
    println(pi)
    println(flag)
  }
}

คำอธิบายชนิดข้อมูลอย่างชัดเจน

คุณสามารถระบุชนิดข้อมูลอย่างชัดเจนหลังเครื่องหมายโคลอนได้เช่นกัน: val x: Int = 42

วิธีนี้มีประโยชน์สำหรับการอธิบายโค้ด หรือเมื่อต้องการเลือกชนิดข้อมูลที่รองรับค่ากว้างกว่าชนิดที่อนุมานได้

object Main {
  def main(args: Array[String]): Unit = {
    val age: Int = 30
    val price: Double = 9.99
    val label: String = "Sale"
    println(label + ": " + price)
  }
}

ชนิดข้อมูลตัวเลขทั่วไป

Scala มีชนิดข้อมูลตัวเลขหลายชนิด:

  • Int สำหรับจำนวนเต็ม
  • Long สำหรับจำนวนเต็มขนาดใหญ่
  • Double สำหรับเลขทศนิยม
  • Float สำหรับเลขทศนิยมที่มีขนาดเล็กกว่า

ค่าคงที่จำนวนเต็มจะมีค่าเริ่มต้นเป็น Int ส่วนค่าคงที่ทศนิยมจะมีค่าเริ่มต้นเป็น Double

object Main {
  def main(args: Array[String]): Unit = {
    val whole: Int = 7
    val big: Long = 9000000000L
    val dec: Double = 2.5
    println(whole + dec)
  }
}

Boolean และ Char

Boolean เก็บค่า true หรือ false ส่วน Char เก็บอักขระเดี่ยวที่เขียนภายในเครื่องหมายอัญประกาศเดี่ยว

สิ่งเหล่านี้เป็นชนิดข้อมูลเต็มรูปแบบที่คุณสามารถเก็บไว้ใน val และ var ได้

object Main {
  def main(args: Array[String]): Unit = {
    val isReady: Boolean = true
    val grade: Char = 'A'
    println(isReady)
    println(grade)
  }
}

ชนิดข้อมูล String

String เก็บข้อความภายในเครื่องหมายอัญประกาศคู่ สตริงใน Scala ไม่สามารถเปลี่ยนแปลงค่าได้

คุณสามารถต่อสตริงด้วย + และเรียกใช้เมธอดที่มีประโยชน์มากมายกับสตริงเหล่านั้นได้

object Main {
  def main(args: Array[String]): Unit = {
    val first = "Grace"
    val last = "Hopper"
    val full = first + " " + last
    println(full.toUpperCase)
  }
}

เหตุใดจึงเลือก val แทน var

ค่าที่ไม่เปลี่ยนแปลงช่วยป้องกันข้อผิดพลาดจำนวนมาก เนื่องจากไม่มีสิ่งอื่นมาเปลี่ยนค่าโดยที่คุณไม่รู้ตัว

  • ทำความเข้าใจได้ง่ายกว่า
  • ปลอดภัยกว่าในโค้ดที่ทำงานพร้อมกัน
  • ส่งเสริมรูปแบบการเขียนโปรแกรมเชิงฟังก์ชัน

เลือกใช้ var เฉพาะเมื่อจำเป็นต้องเปลี่ยนแปลงค่าจริง ๆ

ความปลอดภัยของชนิดข้อมูลในการใช้งานจริง

เนื่องจาก Scala ใช้การกำหนดชนิดข้อมูลแบบสถิติคอมไพเลอร์จึงตรวจพบชนิดข้อมูลไม่ตรงกันก่อนที่โปรแกรมจะทำงาน

การกำหนดข้อความให้กับ Int จะล้มเหลวขณะคอมไพล์ ต่อไปนี้คือตัวอย่างโค้ดที่ถูกต้องและมีชนิดข้อมูลตรงกัน

object Main {
  def main(args: Array[String]): Unit = {
    val quantity: Int = 3
    val unitPrice: Double = 4.50
    val total: Double = quantity * unitPrice
    println(total)
  }
}

นำทุกอย่างมารวมกัน

รวมการผูกชื่อแบบไม่เปลี่ยนแปลงและแบบเปลี่ยนแปลงได้เข้ากับการอนุมานชนิดข้อมูลและคำอธิบายชนิดข้อมูลในโปรแกรมขนาดเล็กหนึ่งโปรแกรม

โปรดสังเกตว่าคอมไพเลอร์ติดตามชนิดข้อมูลทุกชนิดให้คุณอย่างไร

object Main {
  def main(args: Array[String]): Unit = {
    val base = 100
    var running = base
    val step: Int = 25
    running = running + step
    println(running)
  }
}

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

ตรวจสอบความเข้าใจเกี่ยวกับการผูกชื่อและชนิดข้อมูลของคุณ

สรุปทบทวน

คุณได้เรียนรู้วิธีที่ Scala ตั้งชื่อให้ค่า:

  • val คือการผูกชื่อแบบไม่เปลี่ยนแปลง ส่วน var เปลี่ยนแปลงได้
  • การอนุมานชนิดข้อมูล จะเลือกชนิดข้อมูลจากค่า
  • คุณสามารถเพิ่มคำอธิบายชนิดข้อมูลอย่างชัดเจน เช่น val x: Int
  • ชนิดข้อมูลพื้นฐานได้แก่ Int, Long, Double, Boolean, Char และ String
  • ควรเลือกใช้ val เพื่อให้โค้ดปลอดภัยและอ่านเข้าใจง่ายขึ้น
เริ่มต้นได้ฟรี

เรียนรู้ Scala ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
39
บทเรียน
143

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

บทเรียน “val, var และชนิด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “val, var และชนิด”

การผูกค่าและการอนุมานชนิด คุณปฏิบัติ Scala for Backend Engineering & Functional Programming ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Scala for Backend Engineering & Functional Programming หรือไม่

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

บทเรียน “val, var และชนิด” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Scala for Backend Engineering & Functional Programming นี้ได้ไหม

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

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

  1. การใช้ REPL
  2. val, var และชนิด
  3. นิพจน์แทนคำสั่ง
  4. การแทรกค่าลงในสตริง
← กลับไปที่ Scala for Backend Engineering & Functional Programming