加号如何指代 Kotlin 中的加号函数,它是一个中缀函数吗?

How does plus sign refers to plus function in Kotlin and is it an infix function?

我有三个问题。

1.加号(+)in运算符如何引用plus()包含()函数?

2. 这些是中缀函数吗?
他们没有中缀符号。

3. 有什么方法可以将自定义字符定义为运算符吗?

1) & 2)

+in(以及其他一些)是语言内置的并且是隐式中缀并且具有相关的运算符函数(加上 & 包含)。

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/plus.html#kotlin$plus(kotlin.String,%20kotlin.Any)/其他

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
}

此处定义了运算符重载

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

Operators and Special Symbols

Kotlin supports the following operators and special symbols:

+, -, *, /, % - mathematical operators