Это
var anotherBool: Bool = {
//same function here
return true
}()
- это замыкание , его выполнение происходит в первый раз, а затем значение сохраняется в anotherBool
при повторном вызове, тогда как
var someBool: Bool {
get {
//in theory a function here
return true
}
}
- это вычисляемое свойство , где каждый раз, когда пишется этот var, вызывается get, и при каждом вызове происходит выполнение, поэтому, если содержимое является динамическим, используйте вычисляемое свойство, если нет, то закрытия достаточно, как если бы вы использовали computed, у него будет проблема с производительностью при повторном запуске того же кода, который предположительно даст тот же результат