[英]No visibility when extending function for a data class from its companion object
给定以下数据 class:
data class Coords(val x: Int, val y: Int) {
companion object CoordsOps {
private val shiftTable: Map<Direction, Pair<Int, Int>> = mapOf(
Direction.North to Pair(0, 1),
Direction.East to Pair(1, 0),
Direction.South to Pair(0, -1),
Direction.West to Pair(-1, 0)
)
private operator fun Coords.plus(increment: Pair<Int, Int>): Coords =
Coords(x + increment.first, y + increment.second)
fun Coords.shift(direction: Direction): Coords = this + shiftTable.getValue(direction)
}
}
我无法从 object 外部使用扩展名 function shift()
。我想使用Coords.shift(direction)
。
我究竟做错了什么?
你应该能够。 我准确地复制了您的代码,并且能够从另一个文件调用分机号 function shift。
也许你错过了进口? 还是叫错了? 试试这个
import <your_package>.Coords.CoordsOps.shift
val y = Coords(3, 4).shift(Direction.East)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.