gpt4 book ai didi

kotlin - Kotlin如何允许在Java时间对象上使用减号运算符

转载 作者:行者123 更新时间:2023-12-02 13:10:29 26 4
gpt4 key购买 nike

如果我在 Kotlin 做:

val newInstant = Instant.now() - Duration.ofMinutes(10)
它似乎按预期工作,即从当前时间中减去10分钟。
但是,我想知道这是怎么可能的,因为 Instant是一个Java类,并且没有实现Kotlin的运算符重载功能。那么,在表达式中使用了哪种Kotlin机制来实现 minus运算符?

最佳答案

Instant具有public Instant minus(TemporalAmount amountToSubtract)方法,该方法用作二进制运算符-

Since Java has no way of marking methods for which it makes sense to use the operator syntax, Kotlin allows using any Java methods with the right name and signature as operator overloads and other conventions (invoke() etc.) Calling Java methods using the infix call syntax is not allowed.


https://kotlinlang.org/docs/reference/java-interop.html#operators
https://kotlinlang.org/docs/reference/operator-overloading.html

关于kotlin - Kotlin如何允许在Java时间对象上使用减号运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64232992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com