DevPrep

Все темы › Основные понятия программирования

Локальная переменная

Junior

Суть

Локальная переменная объявлена внутри функции, метода, замыкания или блока (if, for, do). Она существует только пока выполняется этот блок и не видна снаружи. Это самый безопасный вид состояния: его не может изменить никто, кроме кода рядом.

Как это работает в Swift

func total(of prices: [Double]) -> Double {
    var sum = 0.0                  // живёт только внутри этого вызова
    for p in prices {
        let withTax = p * 1.2      // область видимости — тело цикла
        sum += withTax
    }
    return sum
}                                  // sum и withTax больше не существуют

func makeCounter() -> () -> Int {
    var count = 0                  // захвачена замыканием → переезжает в кучу
    return { count += 1; return count }
}
let next = makeCounter()
print(next(), next())              // 1 2

Локальная vs глобальная vs свойство

Правило: держите состояние в самой узкой области, где оно нужно. Если переменная нужна двум методам — это свойство; если одному — локальная.

На что смотрит интервьюер

Понимаете ли вы захват переменных замыканиями: count в примере выше — одна и та же переменная при каждом вызове, а не копия, потому что замыкание держит ссылку на её box. Это основа вопросов про [weak self] и capture list.

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store