Есть ли способ превратить нуль в ненулевой тип с каким-то видом «Я знаю, что я делаю»?
Я хочу создать двусвязный список:
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
перед тем, как войти в тело.