struct ContentView: View { let numbers = [1, 2, 3, 4, 5] var doubledNumbers: [Int] = { var result = [Int]() for number in numbers { result.append(number * 2) } return result }() var body: some View { VStack { Text("Original Numbers: \(numbers)") Text("Doubled Numbers: \(doubledNumbers)") } }
}
在这个例子中,使用了一个闭包来初始化 doubledNumbers 属性。这个闭包会在 ContentView 的初始化过程中被调用,并返回一个包含 numbers 数组中每个元素的两倍的新数组。这个闭包是通过大括号 {} 来定义的,它没有参数,并返回一个 [Int] 类型的数组。在这个闭包中,可以执行任何需要初始化 doubledNumbers 的代码。在这个例子中,使用了一个 for 循环来遍历 numbers 数组中的每个元素,并将其乘以 2,然后将结果添加到 result 数组中。在 body 属性中,可以使用 doubledNumbers 属性来引用这个新数组,并在界面上显示它。
这不就是一个计算函数吗?