gpt4 book ai didi

java - Kotlin 不允许使用 charAt

转载 作者:行者123 更新时间:2023-12-04 12:52:56 26 4
gpt4 key购买 nike

为什么 java 编译而 kotlin 不编译?以及如何调用 charAt在 Kotlin ?
java :

import java.nio.CharBuffer;

public class Test {
public static void test() {
CharBuffer buffer = CharBuffer.wrap("asd");
buffer.charAt(0);
}
}
Kotlin :
import java.nio.CharBuffer

class TestKotlin {
fun test() {
val buffer = CharBuffer.wrap("asd")
buffer.charAt(0)
}
}

最佳答案

我从看 this old issue 开始推理Kotlin 开发人员曾经不小心处理过 CharBuffer.charAt()CharBuffer.get()作为等效并隐藏 charAt() Kotlin 中的方法并将其映射到 get() .他们这样做可能是为了促进数组访问语法(括号)的使用并避免假定的冗余。
也许后来当上述问题得到解决时,他们错过了取消隐藏该方法。buffer.charAt(i)将是 buffer[buffer.position() + i]在 Kotlin 。您可以编写一个扩展函数,以便您可以继续使用它:

fun CharBuffer.charAt(index: Int) = this[position() + index]
如果您选择越界索引,则错误消息的信息量将比原始方法中的信息略少。
也许有人应该为此在 YouTrack 上打开一个问题......

关于java - Kotlin 不允许使用 charAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69814560/

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