Swift: предполагается статическое для полей let с начальным значением - PullRequest
0 голосов
/ 10 апреля 2019

Пожалуйста, исправьте меня, если я ошибаюсь, но похоже, что постоянное (let) поле с начальным значением, указанным в объявлении (а не полученным в конструкторе), может быть принято static, так как это значение будет таким же для все экземпляры класса. Интересно, обслуживает ли это компилятор Swift.

Меня явно раздражает необходимость явно указывать имя класса для всех статических полей (MyClass.myStaticField вместо просто staticField), но если константы неявно статичны, ключевое слово static позволит ссылаться на них только по имени переменной , что делает код лаконичным и лучше читаемым.

1 Ответ

1 голос
/ 10 апреля 2019

Функционально это будет похоже на статическое свойство, но если вы создадите константу, которой присваивается значение в качестве переменной экземпляра (например, вы не указываете, что она статическая), тогда она все равно будет константой в экземпляре,Разумеется, они идентичны во всех случаях.Возможно, просто сделайте его статичным и сделайте его принадлежащим классу в этот момент.Поэтому, чтобы ответить на ваш вопрос, нет, он не считается статическим, он должен быть помечен как статический, если он статический.

...