while-let 表达式
while-let
表达式首先对条件中 <-
右侧的表达式进行求值,如果此值能匹配 <-
左侧的模式,则执行循环体,然后重复执行此过程。如果模式匹配失败,则结束循环,继续执行 while-let
表达式之后的代码。例如:
import std.random.*
// 此函数模拟在通信中接收数据,获取数据可能失败
func recv(): Option<UInt8> {
let number = Random().nextUInt8()
if (number < 128) {
return Some(number)
}
return None
}
main() {
// 模拟循环接收通信数据,如果失败就结束循环
while (let Some(data) <- recv()) {
println(data)
}
println("receive failed")
}
运行以上程序,可能的输出为:
73
94
receive failed