คลาสและพร็อพเพอร์ตี expect/actual
นอกเหนือจากฟังก์ชัน: การประกาศที่คุณทำเป็น expect/actual ได้
คลาสและพร็อพเพอร์ตี 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุผลที่มี expect/actual
- รับชื่อแพลตฟอร์มสำหรับแต่ละเป้าหมาย
- คลาสและพร็อพเพอร์ตี expect/actual
- ข้อผิดพลาดทั่วไปและข้อผิดพลาดของคอมไพเลอร์