Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何使用Kotlin在该函数中实现非空返回?_Function_Kotlin_While Loop_Try Catch_Do While - Fatal编程技术网

Function 如何使用Kotlin在该函数中实现非空返回?

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 != "")

//ı希望这个函数给我一个非空(字符串)的结果,并且ı会在其他地方使用它。其中3个函数会给空作为结果,只有一个函数不会为空。。。如果有人能帮忙,ı会很高兴的,从现在开始非常感谢…

你可以把
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"))!!