พื้นฐาน Flow ในโค้ด shared
ส่งกระแสค่าจาก commonMain
พื้นฐาน Flow ในโค้ด shared เป็นบทเรียน Kotlin Multiplatform Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Multiplatform Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน
กระแสของค่า
ฟังก์ชันที่พักการทำงานจะส่งคืนค่าหนึ่งค่าแล้วจบการทำงาน ส่วน กระแสข้อมูล นั้นแตกต่างออกไป เพราะจะส่งค่าหลายค่าต่อเนื่องกันตามเวลา ทีละค่า 🌊
เย็นเป็นค่าเริ่มต้น
กระแสข้อมูลเป็นแบบ เย็น: โค้ดภายในจะไม่ทำอะไรจนกว่าจะมีคนเริ่มรวบรวม หากไม่มีตัวรวบรวมก็จะไม่มีงานเกิดขึ้น ทำให้โค้ดที่ใช้ร่วมกันทำงานแบบขี้เกียจและใช้ทรัพยากรน้อย
สร้างด้วย flow {}
ตัวสร้าง กระแสข้อมูล เป็นวิธีที่ง่ายที่สุดในการสร้างกระแสข้อมูล ภายในนั้นคุณเรียก emit เพื่อส่งค่าแต่ละค่าออกไปยังผู้ที่กำลังรับฟัง
fun ticks(): Flow<Int> = flow {
emit(1)
emit(2)
emit(3)
}emit ส่งค่าออกไป
การเรียก emit แต่ละครั้งจะส่งค่าหนึ่งค่าให้ตัวรวบรวมก่อนดำเนินการต่อ กระแสข้อมูลจะเสร็จสิ้นเมื่อบล็อกของตัวสร้างส่งคืนค่าเท่านั้น
รวบรวมเพื่อรับค่า
หากต้องการอ่านกระแสข้อมูล คุณต้อง รวบรวม กระแสข้อมูลนั้น การรวบรวมเป็นการเรียกที่พักการทำงาน จึงต้องอยู่ภายในโครูทีน และจะเรียกใช้บล็อกของคุณกับค่าที่ส่งออกมาแต่ละค่า
ticks().collect { value ->
println(value)
}ทำงานได้ทุกที่
กระแสข้อมูลมีให้ใช้งานใน kotlinx-coroutines ซึ่งรองรับหลายแพลตฟอร์ม โค้ดกระแสข้อมูลเดียวกันใน commonMain จึงทำงานบน Android และ iOS ได้โดยไม่ต้องเปลี่ยนแปลงใด ๆ 🎉
flowOf สำหรับค่าคงที่
เมื่อคุณทราบค่าอยู่แล้ว flowOf จะห่อค่าเหล่านั้นเป็นกระแสข้อมูลได้ทันที นี่คือกระแสข้อมูลที่สร้างได้รวดเร็วที่สุด
val names = flowOf("Ana", "Beto", "Cem")เปลี่ยนรายการเป็นกระแสข้อมูล
Iterable ใด ๆ ก็สามารถเปลี่ยนเป็นกระแสข้อมูลได้ด้วย asFlow วิธีนี้มีประโยชน์เมื่อคุณมีรายการอยู่แล้วและต้องการประมวลผลทีละรายการ
val stream = listOf(10, 20, 30).asFlow()ส่งค่าตามเวลา
เนื่องจากตัวสร้างเป็นบล็อกที่พักการทำงาน คุณจึงสามารถ หน่วงเวลา ระหว่างการส่งค่าได้ วิธีนี้จำลองกระแสข้อมูลจริง เช่น สัญญาณเป็นช่วง การอ่านค่าจากเซนเซอร์ หรือการเรียกตรวจสอบซ้ำ
flow {
repeat(3) { i ->
delay(1000)
emit(i)
}
}กระแสข้อมูลเทียบกับฟังก์ชันที่พักการทำงาน
เลือกใช้ฟังก์ชัน พักการทำงาน สำหรับผลลัพธ์อะซิงโครนัสเพียงค่าเดียว และใช้กระแสข้อมูลเมื่อมีค่าทยอยเข้ามาอย่างต่อเนื่อง การเลือกให้เหมาะสมจะทำให้ส่วนเชื่อมต่อของคุณสื่อความหมายตรงตามจริง
เหตุใดจึงเหมาะกับโค้ดที่ใช้ร่วมกัน
กระแสข้อมูลช่วยให้ชั้นโค้ดที่ใช้ร่วมกันส่งข้อมูลเมื่อข้อมูลเปลี่ยนแปลง และแต่ละแอปเพียงรับฟังเท่านั้น ตรรกะทางธุรกิจ ของคุณจึงขับเคลื่อนส่วนติดต่อผู้ใช้ได้โดยไม่ต้องรู้ว่ากำลังทำงานบนแพลตฟอร์มใด
ตรวจสอบอย่างรวดเร็ว
มาดูกันว่าแนวคิดพื้นฐานยังติดอยู่หรือไม่
สรุปทบทวน
คุณได้รู้จักกับ กระแสข้อมูล: กระแสข้อมูลแบบเย็นที่สร้างด้วย flow และอ่านด้วย collect โดยรองรับหลายแพลตฟอร์ม กระแสข้อมูลเดียวกันจึงส่งข้อมูลให้ทั้ง Android และ iOS ได้ 🌊
คำถามที่พบบ่อย
บทเรียน “พื้นฐาน Flow ในโค้ด shared” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐาน Flow ในโค้ด shared” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Multiplatform Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Multiplatform Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน Flow ในโค้ด shared”
ส่งกระแสค่าจาก commonMain คุณปฏิบัติ Kotlin Multiplatform Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Multiplatform Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Multiplatform Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “พื้นฐาน Flow ในโค้ด shared” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Multiplatform Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Multiplatform Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน Flow ในโค้ด shared
- StateFlow สำหรับสถานะ UI แบบ shared
- ตัวดำเนินการ: map, filter, combine
- รวบรวม Flow บน Android และ iOS