for 循环
功能
for 用于遍历一组可迭代数据。BT 目前支持遍历数组、对象和字符串:数组按下标和值遍历,对象按 key 和 value 遍历,字符串按字符遍历。
语法
for value in iterable {
value
}
for key, value in iterable {
value
}
for:label key, value in iterable {
break:label
}
只接收值
只关心元素本身时,写一个变量即可。
names = ['Lisa', 'Suci', 'Emerie']
for name in names {
println name
}
同时接收 key 和 value
需要下标或对象 key 时,写两个变量:第一个是 key,第二个是 value。
users = {name: 'Lisa', age: 18}
for key, value in users {
println key + ': ' + string(value)
}
break 和 continue
break 立即结束当前循环;continue 跳过本次循环剩余语句,进入下一次循环。
for index, value in [1, 2, 3, 4] {
if value == 2 {
continue
}
if value == 4 {
break
}
println value
}
标签循环
嵌套循环中,可以给循环加标签,然后用 break:label 或 continue:label 控制指定层级。冒号用于明确表示后面是跳转标签,标签写在循环关键字后面,格式为 for:a、while:a 或 loop:a。
arr = ['Lisa', 'Suci', 'Emerie']
list = ['Rita', 'maria', 'Jenna']
for:a k1, v1 in arr {
for:b k2, v2 in list {
if k1 == 1 {
break:a
}
if k2 == 1 {
continue:b
}
println v2
}
println v1
}
返回值
循环语句本身返回 empty。如果需要收集结果,通常先创建数组或对象,在循环体内写入。