Kotlin Multiplatform Academy · บทเรียน

คลาสและพร็อพเพอร์ตี expect/actual

นอกเหนือจากฟังก์ชัน: การประกาศที่คุณทำเป็น expect/actual ได้

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

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

มากกว่าฟังก์ชัน

expect/actual ไม่ได้จำกัดอยู่แค่ฟังก์ชัน คุณยังสามารถประกาศ คลาส ทั้งคลาส คุณสมบัติ และแม้แต่ออบเจ็กต์ที่แตกต่างกันในแต่ละแพลตฟอร์มได้

คุณสมบัติ expect

ต้องการค่าที่แต่ละแพลตฟอร์มกำหนดเองหรือไม่ ประกาศ expect val ใน commonMain แล้วให้แต่ละเป้าหมายจัดเตรียมค่าจริง

expect val platformName: String

แต่ละเป้าหมายกำหนดค่า

Android และ iOS ต่างก็จัดเตรียม actual val คุณสมบัตินี้ดูเหมือนค่าคงที่ในโค้ดร่วม แต่จะได้รับการแก้ไขตามแพลตฟอร์ม

actual val platformName: String = "iOS"

คลาส expect

สำหรับพฤติกรรมที่ซับซ้อนยิ่งขึ้น ให้ประกาศ expect class ซึ่งระบุสมาชิกที่โค้ดร่วมใช้ได้ ขณะที่แต่ละแพลตฟอร์มเติมเนื้อหาของสมาชิกเหล่านั้น

expect class Platform() {
  val name: String
}

คลาส actual ของ Android

actual class ใน androidMain นำสมาชิกทุกตัวที่ประกาศไว้มาทำให้ใช้งานได้ ในที่นี้ name จะคืนสตริงเฉพาะของ Android

actual class Platform actual constructor() {
  actual val name = "Android"
}

สมาชิกต้องตรงกันทุกประการ

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

ตัวสร้างก็ต้องเป็น actual เช่นกัน

หากคลาส expect มีตัวสร้าง ให้ทำเครื่องหมายตัวสร้างของแพลตฟอร์มเป็น actual constructor คอมไพเลอร์จะตรวจสอบว่าทั้งสองตรงกัน

ใช้เหมือนคลาสทั่วไป

ในโค้ดร่วม คุณเพียงสร้างและใช้งานคลาสนั้น โดยมี actual ที่ถูกต้องคอยสนับสนุนออบเจ็กต์ ทำให้ตรรกะ common ไม่ต้องรับรู้เรื่องแพลตฟอร์ม

val name = Platform().name

เพิ่มส่วนเสริมเฉพาะแพลตฟอร์ม

คลาส actual อาจเพิ่มสมาชิกส่วนตัวนอกเหนือจาก expect ได้ โค้ดร่วมจะมองเห็นเฉพาะสิ่งที่ expect ประกาศไว้เท่านั้น

เลือกเครื่องมือที่เล็กที่สุด

ใช้คุณสมบัติ expect สำหรับค่า ใช้ฟังก์ชัน expect สำหรับการกระทำ และใช้คลาส expect เมื่อจำเป็นต้องมีทั้ง สถานะและพฤติกรรม ✨

ข้อสังเกตสมัยใหม่ที่คุ้นเคย

Kotlin รุ่นใหม่ชี้แนะให้ใช้ interfaces ร่วมกับฟังก์ชัน expect/actual แทน คลาส expect แต่คลาสก็ยังใช้งานได้ดีในปัจจุบัน

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

ลองพิจารณาว่าคลาส actual ต้องรับผิดชอบสิ่งใดต่อ expect

สรุปทบทวน

คุณได้เห็นแล้วว่า expect/actual ครอบคลุมคุณสมบัติและคลาสด้วย ประกาศรูปแบบใน commonMain จากนั้นทำให้สมาชิกทุกตัวเป็นจริงใน actual ของแต่ละแพลตฟอร์ม 🎉

เริ่มต้นได้ฟรี

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

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

คอร์ส
30
บทเรียน
120

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

บทเรียน “คลาสและพร็อพเพอร์ตี expect/actual” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “คลาสและพร็อพเพอร์ตี expect/actual”

นอกเหนือจากฟังก์ชัน: การประกาศที่คุณทำเป็น expect/actual ได้ คุณปฏิบัติ Kotlin Multiplatform Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “คลาสและพร็อพเพอร์ตี expect/actual” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เหตุผลที่มี expect/actual
  2. รับชื่อแพลตฟอร์มสำหรับแต่ละเป้าหมาย
  3. คลาสและพร็อพเพอร์ตี expect/actual
  4. ข้อผิดพลาดทั่วไปและข้อผิดพลาดของคอมไพเลอร์
← กลับไปที่ Kotlin Multiplatform Academy