Sobes.tech
Junior

Тәжрибеңизде билген же колдонгон жардамчы функциялар кайсылар?

sobes.tech AI

AIден жооп

  • Лямбда-экспрессиялары: Кіші функция-обработчиктер үшін кодты қысқартады, мысалы, басу немесе кері шақырулар.

  • Extension Functions (Kotlin): Бар функцияларды мұрагерліксіз жаңа функциялар қосады, оқылуын және ыңғайлылығын жақсартады.

    fun String.isPalindrome(): Boolean {
        // Жолдың палиндром екенін тексереді
        return this == this.reversed()
    }
    
  • Inline Functions (Kotlin): Функцияның денесін шақыру орнына енгізеді, функция объектісін құру шығындарын азайтады, әсіресе лямбдамен бірге қолданғанда пайдалы.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Орындау уақытын өлшейді
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Орындау уақыты: ${endTime - startTime} ms")
    }
    
  • Data Classes (Kotlin): equals(), hashCode(), toString(), copy() автоматты түрде жасайды, деректерді сақтау үшін ыңғайлы.

    data class User(val name: String, val age: Int)
    
  • Sealed Classes (Kotlin): Шектелген мұрагерлік иерархиясын көрсетеді, жағдайларды немесе оқиғаларды моделдеу үшін пайдалы, әсіресе when операторымен бірге.

  • Generics: Түрлі деректер типтерімен жұмыс істейтін қайта қолданылатын компоненттер жасауға мүмкіндік береді.

    public class Box<T> {
        // Барлық деректер типтері үшін жалпы класс
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Коллекциялармен операциялар (map, filter, reduce және т.б.): Коллекциялармен жұмыс істеу үшін функционалды әдістер:

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Жұп сандарды сүзу
        .map { it * it }      // Квадраттау
    
  • Resource getters (Kotlin): Жолдар, түстер, өлшемдер және т.б. ресурстардан алу үшін:

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Nullable types and safe calls (Kotlin): NullPointerException санын азайтады:

    val name: String? = null
    val length = name?.length ?: 0 // Қауіпсіз шақыру және Элвис операторы