Function 如何使用Kotlin在该函数中实现非空返回?
//ı希望这个函数给我一个非空(字符串)的结果,并且ı会在其他地方使用它。其中3个函数会给空作为结果,只有一个函数不会为空。。。如果有人能帮忙,ı会很高兴的,从现在开始非常感谢…你可以把Function 如何使用Kotlin在该函数中实现非空返回?,function,kotlin,while-loop,try-catch,do-while,Function,Kotlin,While Loop,Try Catch,Do While,//ı希望这个函数给我一个非空(字符串)的结果,并且ı会在其他地方使用它。其中3个函数会给空作为结果,只有一个函数不会为空。。。如果有人能帮忙,ı会很高兴的,从现在开始非常感谢…你可以把return x放在之外,而像这样的块 lateinit var x:String private fun defineTheIDofTheRoom ():String { while (x != "")
return x
放在之外,而像这样的块
lateinit var x:String
private fun defineTheIDofTheRoom ():String {
while (x != "") {
x = intent.getStringExtra("ID1")!!
x = intent.getStringExtra("ID2")!!
x = intent.getStringExtra("ID3")!!
x = intent.getStringExtra("ID4")!!
}
return x
}
其中3个结果为空,其中只有一个不为空
问题就在这里,代码甚至不会在第一次尝试之后通过其他代码执行。所以我猜问题是为什么在我的while块中它执行第一行而不是其他行,可能while块中有错误
如果前3个值实际上不是空值,它们将为x
分配一个值,但该值将立即被覆盖;唯一的影响
private fun defineTheIDofTheRoom (): String {
while (x != "") {
x = intent.getStringExtra("ID1")!!
x = intent.getStringExtra("ID2")!!
x = intent.getStringExtra("ID3")!!
x = intent.getStringExtra("ID4")!!
}
return x
}
如果其中任何一行为null
,则该行将抛出异常。我猜你想要
x = intent.getStringExtra("ID1")!!
x = intent.getStringExtra("ID2")!!
x = intent.getStringExtra("ID3")!!
并且在循环时没有。我只会使用最后的
如果您特别想在所有4个都为null
和的情况下崩溃,请执行以下操作:“一些默认情况”
。您必须详细说明您的问题,并使用适当的语言和框架标记它。一般来说,您需要在函数上返回一个值,如returnx代码>例如,这里的代码有几个问题,但您可能要问自己的第一个问题是:如果x是空字符串,您的函数应该返回什么?@giddsım肯定其中一个不会返回空字符串…@MaiconMauricioı更改了它,很抱歉忘记了返回x…@jayzxll如果我的代码生成的每个“不可能”条件都有一英镑… 但你要说服的不是我;这是编译器。非常感谢,但ı只是弄错了,已经ı在while块之外使用了return x。。。
x = (intent.getStringExtra("ID1") ?: intent.getStringExtra("ID2") ?: intent.getStringExtra("ID3") ?: intent.getStringExtra("ID4"))!!