Влияние на производительность, связанное с функциями и свойствами - PullRequest
0 голосов
/ 05 сентября 2018

С точки зрения производительности рассмотрим следующий код:

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

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

Предполагая, что оба используют одну и ту же функцию для вычисления логического возврата, есть ли какой-то выигрыш в производительности от использования одного против другого? Есть ли рекомендуемый подход для рассмотрения?

1 Ответ

0 голосов
/ 05 сентября 2018

Это

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

- это замыкание , его выполнение происходит в первый раз, а затем значение сохраняется в anotherBool при повторном вызове, тогда как

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

- это вычисляемое свойство , где каждый раз, когда пишется этот var, вызывается get, и при каждом вызове происходит выполнение, поэтому, если содержимое является динамическим, используйте вычисляемое свойство, если нет, то закрытия достаточно, как если бы вы использовали computed, у него будет проблема с производительностью при повторном запуске того же кода, который предположительно даст тот же результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...