gpt4 book ai didi

kotlin - 强制将null转换为非null类型

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

是否可以通过某种“我知道自己在做什么”将null塞入非null类型?

我想做一个双向链表:

data class Node(var prev: Node, var next: Node, val value: Int)

我可以保证,除了在添加第一个节点之后,在第二个节点之前,在初始化期间,此列表将始终具有至少两个元素。我想保证prev和next永远不会为空。

我以为我想尝试的一件事就是编写一个特殊的构造函数,该构造函数会同时初始化第一个和第二个节点 constructor(v1: Int, v2: Int) : this(Node(this, this, v1), v2),但这是行不通的,因为在进入主体之前我无法对 this进行任何操作。

最佳答案

我想知道我们是否在Kotlin中执行相同的adventofcode puzzle

我使用了Lateinit属性来允许大理石更改其在链表中作为节点的位置

class Marble(val marbleNumber: Long) {
lateinit var counterClockwiseMarble: Marble
lateinit var clockwiseMarble: Marble
}

最初与二传手
class Marble(val marbleNumber: Long) {
lateinit var counterClockwiseMarble: Marble
private set

lateinit var clockwiseMarble: Marble
private set

fun setCounterClockwise(m: Marble) {
this.counterClockwiseMarble = m
}

fun setClockwise(m: Marble) {
this.clockwiseMarble = m
}
}

但是当使用控制得足够安全时,这似乎是很多文字

如果是同一难题,则可以 see this used in context on github

关于kotlin - 强制将null转换为非null类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53693385/

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