Sobes.tech
Junior — Middle

Чӣ гуна консепсияҳои inline ва Generic дар барномасозӣ ба ҳам алоқаманданд?

sobes.tech AI

Ҷавоб аз AI

Масоили inline ва generic дар барномаигӣ вазифаҳои гуногунро иҷро мекунанд, аммо аксар вақт дар якҷоягӣ истифода мешаванд, махсусан дар Kotlin.

  • Generic имкон медиҳад, ки функсияҳо ва синфҳои умумӣ сохта шаванд, ки бо намудҳои гуногуни додаҳо кор мекунанд, бидуни такрори код. Масалан, функсияи fun <T> printItem(item: T) метавонад ҳар намудро қабул кунад.

  • Inline модификатори функсия аст, ки дар вақти компилятсия ҷисми функсияро ҷойгузин мекунад, ки ин хароҷоти даъвати функсияро кам мекунад, махсусан дар кор бо ламбдаҳо.

Бо ҳам, онҳо имкон медиҳанд, ки функсияҳои умумии самаранок бо параметрҳои ламбда бидуни талафоти иҷроиш сохта шаванд. Масалан, функсияҳои inline generic дар китобхонаи стандартии Kotlin барои коллексияҳо истифода мешаванд.

Масалан:

inline fun <T> List<T>.customFilter(predicate: (T) -> Boolean): List<T> {
    val result = mutableListOf<T>()
    for (item in this) {
        if (predicate(item)) result.add(item)
    }
    return result
}

Ин ҷо, inline хароҷоти даъвати ламбдаро кам мекунад, ва generic имкон медиҳад, ки бо ҳар навъи рӯйхат кор кард.