Fonctions infixes
Des appels de fonctions lisibles
Fonctions infixes est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.
Qu'est-ce qu'une fonction infixe
Une fonction infixe peut être appelée sans point ni parenthèses : a func b. Marquez-la avec le mot-clé infix.
infix fun Int.times2(factor: Int) = this * factor
fun main() {
println(3 times2 4)
}Règles des fonctions infixes
Une fonction infixe doit être une fonction membre ou d'extension, accepter exactement un paramètre, et ce paramètre ne doit être ni vararg ni doté d'une valeur par défaut.
infix fun Int.plusBy(other: Int) = this + other
fun main() {
println(5 plusBy 7)
}Fonctions infixes intégrées
De nombreuses fonctions standard sont infixes : to (qui construit une paire), and, or, shl, ainsi que until, downTo et step pour les plages.
fun main() {
val pair = "key" to 42
println(pair)
for (i in 1 until 4) print(i)
}Construire une paire avec to
La syntaxe familière de carte "a" to 1 n'est autre que la fonction infixe to, qui renvoie une paire.
fun main() {
val map = mapOf(1 to "one", 2 to "two")
println(map[2])
}Infixe en tant que fonction membre
Les fonctions infixes peuvent être des membres, ce qui permet d'écrire des expressions fluides propres à un domaine.
class Money(val cents: Int) {
infix fun add(o: Money) = Money(cents + o.cents)
}
fun main() {
val total = Money(100) add Money(50)
println(total.cents)
}La lisibilité avant tout
L'infixe est particulièrement utile lorsque l'appel se lit comme une phrase. Choisissez des noms semblables à des verbes afin que a name b s'enchaîne naturellement.
infix fun String.repeatedTimes(n: Int) = this.repeat(n)
fun main() {
println("ab" repeatedTimes 3)
}Priorité des appels infixes
Les appels infixes ont une priorité inférieure à celle des opérations arithmétiques, mais supérieure à celle des comparaisons. Ajoutez des parenthèses lorsque vous les combinez, pour plus de clarté.
infix fun Int.combine(o: Int) = this * 10 + o
fun main() {
println(1 combine 2 + 3)
}Le récepteur this
Dans une extension infixe, this est l'opérande de gauche ; le paramètre est l'opérande de droite.
infix fun Int.minus2(o: Int) = this - o
fun main() {
println(10 minus2 3)
}Enchaîner les appels infixes
Les appels infixes sont associatifs à gauche, ce qui permet de les enchaîner.
infix fun Int.then(o: Int) = this + o
fun main() {
println(1 then 2 then 3)
}Éviter l'usage excessif de l'infixe
L'infixe supprime les points et les parenthèses, ce qui peut nuire à la clarté pour les opérations qui ne sont pas évidentes. Utilisez-le uniquement lorsque la lecture y gagne.
infix fun Int.power(exp: Int): Int {
var r = 1
repeat(exp) { r *= this }
return r
}
fun main() {
println(2 power 5)
}Un exemple fluide
L'infixe peut rendre les assertions ou les générateurs presque aussi lisibles qu'une phrase en français.
infix fun String.shouldStartWith(prefix: String) =
this.startsWith(prefix)
fun main() {
println("kotlin" shouldStartWith "kot")
}Vérification rapide
Vérifiez votre compréhension des fonctions infixes.
Récapitulatif
Vous avez appris les fonctions infixes :
- Marquez-les avec
infixet appelez-les sous la formea func b. - Elles doivent être membres ou extensions, avec un paramètre unique qui n'est ni
varargni doté d'une valeur par défaut. to,untiletdownTosont des fonctions infixes intégrées.- Utilisez-les lorsqu'elles améliorent réellement la lisibilité.
infix fun Int.add(o: Int) = this + o
fun main() {
println(4 add 6)
}Questions Fréquemment Posées
La leçon « Fonctions infixes » est-elle gratuite ?
Oui — le texte complet de « Fonctions infixes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions infixes » ?
Des appels de fonctions lisibles Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kotlin Academy ?
Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fonctions infixes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?
Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.