提问人:winfred adrah 提问时间:10/23/2023 更新时间:10/24/2023 访问量:42
无法在 Kotlin 的 while 循环中重新分配值
Unable to reassign value in a while loop in Kotlin
问:
我正在尝试从套接字连接获取响应。我正在使用 while 循环将字节读入字符串。我声明了一个变量“response”来保存响应,但我无法访问 while 循环之外的变量。
try {
socket = Socket()
socket.connect(InetSocketAddress(IP, PORT))
val out = DataOutputStream(socket.getOutputStream())
val dataIn = DataInputStream(socket.getInputStream())
out.writeBytes(sending)
var ByteIn: Byte
response = ""
ByteIn = dataIn.readByte()
while (true) {
response += ByteIn.toChar()
ByteIn = dataIn.readByte()
Log.d("Response response", response)// I am able to get the response in the loop
Log.d("ByteIn Byte In", ByteIn.toString())
}
Log.d("Response response", response) //I am unable to get the response here
//close the try block and catch various exceptions
我能够在循环中得到响应,但我无法在循环后得到响应。
答:
1赞
Bruno Lima
10/24/2023
#1
您已经声明了两个响应变量,一个在 while 作用域中,另一个在 try 作用域中。
评论
0赞
winfred adrah
10/24/2023
声明在 try catch 块之前,它只在 while 循环之前分配了一个空字符串,并在 while 循环中分配了响应
0赞
Bruno Lima
10/24/2023
有疑问时,请尝试在两个作用域之外定义变量,并查看是否更改了行为。或者使用断点来检查沿工作流中值的变量。
评论