在 Kotlin 中你可以这样做:
val s: String = "Hey"
println(s[1])
或者简单地说:
println("Hey"[1])
然后你会打印出e
.
但是如果您想将此行为扩展到您自己的类中怎么办?您需要实现什么接口(interface)来完成此语法?
我看了String
的父类(super class)型,只找到 Comparable<String>
和 CharSequence
,它们本身都没有任何其他父类(super class)型,所以我的任务提前结束了。
例如在 Python 中,通过定义一个名为 __getitem__
的方法在类中,您可以赋予该类的对象使用方括号语法的能力,例如 a[i]
;我想知道这在 Kotlin 中是如何实现的。
提前致谢。
最佳答案
您可以使用 Kotlin 的运算符重载,特别是 indexed access operators 的重载.
语法 "Hey"[1]
只是 "Hey".get(1)
的别名(如果不在赋值的左侧,它将是 "Hey".set(1, ...)
) 的别名。
关于kotlin - 是什么让 Kotlin 中的 String 类能够使用方括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71824484/