Ответ
В Swift static применяется в нескольких контекстах, объединённых идеей принадлежности к типу, а не к экземпляру:
-
Статические члены типа (Static Type Members): Свойства и методы, принадлежащие самому типу (классу, структуре, перечислению). Для доступа используется имя типа.
struct MathUtils { static let pi = 3.14159 static func square(_ x: Double) -> Double { return x * x } } print(MathUtils.pi) // 3.14159 -
Статические переменные внутри функций (Static Local Variables): Переменная, время жизни которой совпадает с временем жизни программы. Её значение сохраняется между вызовами функции.
func uniqueIdentifier() -> Int { static var counter = 0 // Инициализируется один раз counter += 1 return counter } uniqueIdentifier() // 1 uniqueIdentifier() // 2 -
Статическая диспетчеризация (Static Dispatch): Механизм, при котором компилятор определяет, какой метод будет вызван, на этапе компиляции. Это приводит к лучшей производительности по сравнению с динамической диспетчеризацией.
Ключевые синонимы/понятия: "принадлежащий типу", "глобальная область видимости в рамках типа", "сохраняющий состояние между вызовами".