Sobes.tech
Middle

Kotlin-ში 'suspend' საკვანძო სიტყვა რას ნიშნავს?

sobes.tech AI

პასუხი AI-სგან

Kotlin-ში suspend საკვანძო სიტყვა გამოიყენება ფუნქციის ან ლამბდა გამოხატულების ნიშნულისთვის, რომელიც პოტენციურად შეიძლება იყოს შეჩერებული და მოგვიანებით განახლებული. ამ ფუნქციებს უწოდებენ კორუტინებს.

suspend ფუნქციების ძირითადი თვისებები:

  • მათ შეუძლიათ მხოლოდ სხვა suspend ფუნქციიდან ან კორუტინის scope-დან მოწოდება.
  • ფუნქციის შეჩერება არ ბლოკავს იმ ნაკადს, რომელზეც ის ხორციელდება. ამის ნაცვლად, ნაკადი შეიძლება გამოყენებულ იქნას სხვა დავალებების შესასრულებლად.
  • შეჩერებული ოპერაციის (მაგალითად, ქსელური მოთხოვნის) შესრულების შემდეგ, ფუნქცია განაახლებს მუშაობას იმ ადგილიდან, სადაც შეჩერებული იყო.
  • უკნიდან, Kotlin კომპილატორი გარდაქმნის suspend ფუნქციებს მდგომარეობის მანქანებად, გამოყენებით Continuation-Passing Style (CPS).

მაგალითი:

// მაგალითი `suspend` ფუნქციის გრძელვადიანი ოპერაციის სიმულაციისთვის
suspend fun fetchData(): String {
    // ქსელური მოთხოვნის ან გრძელვადიანი დავალების სიმულაცია
    kotlinx.coroutines.delay(1000) // შეჩერება, რომელიც არ ბლოკავს ნაკადს
    return "მონაცემები მიღებულია"
}

// ფუნქცია, რომელიც იძახის `suspend` ფუნქციას
fun main() = kotlinx.coroutines.runBlocking { // runBlocking ქმნის კორუტინას scope-ს
    println("მონაცემების ჩატვირთვა...")
    val data = fetchData() // `suspend` ფუნქციის მოწოდება
    println("მონაცემები: $data")
}