Как знак плюс относится к функции плюс в Kotlin и является ли это инфиксной функцией? - PullRequest
0 голосов
/ 18 июня 2020

У меня три вопроса.

1. как знак плюса (+) или в операторе относятся к plus () и contains () functions?

2. Это инфиксные функции?
У них не было инфиксной записи.

3. Можно ли каким-либо образом определять пользовательские символы как операторы?

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

Здесь определяются перегрузки оператора

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 поддерживает следующие операторы и специальные символы:

+, -, *, /,% - математические операторы

1 голос
/ 18 июня 2020

1) & 2)

+ и 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...