Sobes.tech
Junior

Ποιες βοηθητικές λειτουργίες γνωρίζετε ή έχετε χρησιμοποιήσει στην εμπειρία σας;

sobes.tech AI

Απάντηση από AI

  • Λεκτικές εκφράσεις: Μειώνουν τον κώδικα για μικρές λειτουργίες χειρισμού, όπως κλικ ή callbacks.

  • Επεκτάσεις συναρτήσεων (Kotlin): Προσθέτουν νέες λειτουργίες σε υπάρχουσες κλάσεις χωρίς κληρονομιά, βελτιώνοντας την αναγνωσιμότητα και την ευκολία.

    fun String.isPalindrome(): Boolean {
        // Ελέγχει αν η συμβολοσειρά είναι παλίνδρομο
        return this == this.reversed()
    }
    
  • Εσωτερικές συναρτήσεις (Kotlin): Ενσωματώνουν το σώμα της συνάρτησης στη θέση της κλήσης, μειώνοντας το κόστος δημιουργίας αντικειμένων, ιδιαίτερα χρήσιμο με lambdas.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Μετράει τον χρόνο εκτέλεσης του μπλοκ κώδικα
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Χρόνος εκτέλεσης: ${endTime - startTime} ms")
    }
    
  • Δεδομενικές κλάσεις (Kotlin): Δημιουργούν αυτόματα equals(), hashCode(), toString(), copy(), χρήσιμες για αποθήκευση δεδομένων.

    data class User(val name: String, val age: Int)
    
  • Κλειστές κλάσεις (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 }      // Τετραπλασιάζει
    
  • Ανάκτηση πόρων (Kotlin): Για λήψη συμβολοσειρών, χρωμάτων, μεγεθών κ.ά. από πόρους.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Τύποι nullable και ασφαλείς κλήσεις (Kotlin): Μειώνουν τον αριθμό NullPointerException.

    val name: String? = null
    val length = name?.length ?: 0 // Ασφαλής κλήση και τελεστής Elvis