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

พื้นฐาน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. พื้นฐาน Flow ในโค้ด shared
  2. StateFlow สำหรับสถานะ UI แบบ shared
  3. ตัวดำเนินการ: map, filter, combine
  4. รวบรวม Flow บน Android และ iOS
← กลับไปที่ Kotlin Multiplatform Academy