鉴于此(极其简化)代码:
@optics
data class MigrationStatus(val token: String?)
val m = MigrationStatus(null)
我可以打电话
val m1 = MigrationStatus.token.modify(m) { "some token" }
但是由于参数类型是不可为空的String
,我该如何修改token
回null
?当然
val m2 = MigrationStatus.token.modify(m1) { null }
不编译。
尝试将其设置为时将token
类型更改为时也会发生同样的情况,但我避免使用它,因为它现在已被弃用(我不确定我是否喜欢,但这是另一回事)。Option<String>
None
我错过了什么明显的东西吗?