Tag: 空值

Kotlin设置为空如果不为空

在Kotlin中是否有一个习惯用法,如果变量不为空,则将其设置为null? 更符合语义的东西比: var test: String? = null if(test != null) test = null

为什么在设置值并检查它是否为空之后,智能投射失败为空值?

可以说我有以下班级: class MyClass { private var username: String? = null private var projectName: String? = null private var buildNumber: Int = -1 private val presenter: Presenter = Presenter() fun present() { username = "" projectName = "" if (username != null && projectName != null && buildNumber != -1) { presenter.viewReady(this, username, projectName, buildNumber) } […]

Kotlin如果不是空的

什么是最简洁的方式使用iff var不是null ? 我能想到的最好的是: arg?.let { with(it) { }}

Kotlin对类属性无效

我怎样才能避免使用!! 为类的可选属性 class PostDetailsActivity { private var post: Post? = null fun test() { if (post != null) { postDetailsTitle.text = post.title // Error I have to still force using post!!.title postDetailsTitle.author = post.author Glide.with(this).load(post.featuredImage).into(postDetailsImage) } else { postDetailsTitle.text = "No title" postDetailsTitle.author = "Unknown author" Toast.makeText(this, resources.getText(R.string.post_error), Toast.LENGTH_LONG).show() } } } 我应该创建一个局部变量? 我想用!! 不是一个好的做法

null to listOf(),not null to listOf(value)in Kotlin in one liner?

让f()返回一个可为空的值。 我想要做的是这个 如果f()为null,则获取一个空列表, 否则,如果f()不为null,则获取单个项目value的列表。 在斯卡拉,我们可以做这样的事情: Option(f()).toList 或更详细地说 Option(f()).map(v => List(v)).getOrElse(List.empty) 在Kotlin中,没有Option (假设没有Funktionale库),并且null在Scala中不具有toList()不像( None: Option )。 我们有Elvis操作符,但是null将会在listOf()函数内部,所以会是 listOf(f() ?: /* What can I do here? */) 我们想要的null是listOf(/*no argument */) ,但是Elvis操作符需要一个参数,所以listOf(f() ?: )将导致编译错误。 至少我们能做到 val v = f() if (v == null) listOf() else listOf(v) 但它是一个两班轮船。 有这个表达吗? 在那里我将使用这个表达式是在类的主要构造函数的默认参数,所以如果它不是一个班轮,它将被括在方括号,所以这样的事情: class A( val p1: List<V> = run { val […]