Εξηγήστε τη φιλοσοφία της έκφρασης 'when' στη γλώσσα προγραμματισμού Kotlin.
sobes.tech AI
Απάντηση από AI
Το when στην Kotlin είναι ένας καθολικός δομικός τελεστής που αντικαθιστά το κλασικό switch σε άλλες γλώσσες. Μπορεί να χρησιμοποιηθεί ως έκφραση (επιστρέφοντας μια τιμή) ή ως τελεστής.
Βασικές δυνατότητες:
-
Σύγκριση τιμών: Ταίριασμα με συγκεκριμένες τιμές.
fun describe(obj: Any): String = when (obj) { 1 -> "Ένα" "Hello" -> "Χαιρετισμός" is Long -> "Μακρύ" !is String -> "Δεν είναι συμβολοσειρά" else -> "Άγνωστο" } -
Έλεγχος τύπου (
is/!is): Ταίριασμα με τύπους δεδομένων. -
Έλεγχος συμμετοχής (
in/!in): Έλεγχος αν ανήκει σε εύρος ή συλλογή.fun checkRange(x: Int): String = when (x) { in 1..10 -> "Θετικός αριθμός εντός εύρους" !in 10..20 -> "Δεν εντός του δεύτερου εύρους" else -> "Καμία από τις παραπάνω" } -
Χωρίς επιχειρήματα: Χρησιμοποιείται ως πιο ευέλικτη αντικατάσταση αλυσίδων
if-else if-else. Οι συνθήκες αξιολογούνται διαδοχικά.fun checkBoolean(x: Boolean, y: Boolean): String = when { x && y -> "Και οι δύο αληθινοί" !x && !y -> "Και οι δύο ψευδείς" else -> "Μεικτό" } -
Επιστροφή τιμής: Αν το
whenχρησιμοποιείται ως έκφραση, πρέπει να είναι εξαντλητικό (να καλύπτει όλες τις πιθανές περιπτώσεις ή να έχει κλάδοelse).
Το when βελτιώνει την αναγνωσιμότητα και την ασφάλεια του κώδικα σε σύγκριση με το παραδοσιακό switch.