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 时,写两个变量:第一个是 key,第二个是 value。
users = {name: 'Lisa', age: 18} for key, value in users { println key + ': ' + string(value) }
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。如果需要收集结果,通常先创建数组或对象,在循环体内写入。