As Руководство по языку программирования Swift говорит:
Глобальные константы и переменные всегда вычисляются лениво, аналогично Lazy Stored Properties. В отличие от отложенных хранимых свойств , глобальные константы и переменные не должны быть отмечены модификатором lazy.
То есть ваша константа не пуста, она просто не была создана в тот момент, потому что вы никогда не обращались к ней раньше.
Такое поведение не может привести к каким-либо проблемам. Вот пример:
struct MyStruct {
public static let ID = "Identifier"
}
//_ = MyStruct.ID
print(MyStruct.ID)
Если вы запустите этот код и добавите точку останова в строке print
, вы также увидите, что MyStruct.ID
пусто, но правильное значение будет напечатано на консоли, потому что константа была создана после первый доступ.
Если вы раскомментируете закомментированную строку и повторяете то же самое, MyStruct.ID
не будет пустым в print
точке останова строки, потому что она уже была создана при обращении к ней в предыдущей строке.