功能与属性相关的性能影响

时间:2018-09-05 20:12:53

标签: swift

从性能的角度来看,请考虑以下代码:

var someBool: Bool {
    get {
        //in theory a function here
        return true
    }
}

var anotherBool: Bool = {
    //same function here
    return true
}()

假设两者都使用相同的函数来计算布尔值返回值,那么使用一个函数与另一个函数是否会带来某种形式的性能收益?有没有建议的方法可以考虑?

1 个答案:

答案 0 :(得分:4)

var anotherBool: Bool = {
  //same function here
  return true
}()

是一个闭包,它是第一次执行,然后再次调用时存储在anotherBool中的值,而

var someBool: Bool {
   get {
       //in theory a function here
       return true
   }
}

是一个计算属性,每次调用此var时都会调用它,并且每次调用都会执行,因此,如果内容是动态的,则使用计算属性,否则闭包就足够了如果您使用计算的话,将会产生性能问题,即再次运行假定产生相同结果的代码