У меня три вопроса. 1. как знак плюса (+) или в операторе относятся к plus () и contains () functions? 2. Это инфиксные функции? У них не было инфиксной записи. 3. Можно ли каким-либо образом определять пользовательские символы как операторы?
Здесь определяются перегрузки оператора
https://kotlinlang.org/docs/reference/operator-overloading.html
Expression Translated to a + b a.plus(b) a - b a.minus(b) a * b a.times(b) a / b a.div(b) a % b a.rem(b), a.mod(b) (deprecated) a..b a.rangeTo(b)
Здесь находятся специальные символы и зарезервированные слова
https://kotlinlang.org/docs/reference/keyword-reference.html
Операторы и специальные символы Kotlin поддерживает следующие операторы и специальные символы: +, -, *, /,% - математические операторы
Операторы и специальные символы
Kotlin поддерживает следующие операторы и специальные символы:
+, -, *, /,% - математические операторы
1) & 2)
+ и in (и некоторые другие) являются встроенными в язык, являются неявно инфиксными и имеют соответствующие операторные функции (плюс & содержит).
+
in
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/plus.html#kotlin $ плюс (kotlin .String,% 20 kotlin. Any) / other
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/contains.html
3) Да, но вы должны экранировать символы вроде этого `$` или `^`
`$`
`^`
infix fun Int.`√`(arg: Double): Double { return Math.pow(arg, 1.0 / this.toDouble()) } infix fun Double.`^^`(arg: Double): Double { return Math.pow(arg, this) } fun main() { println( 3 `√` 27.0 ) // 3.0 println( 3.0 `^^` 3.0 ) // 27.0 }