Почему Swift не использует getter и setter для свойств, таких как Java или C#? - PullRequest
1 голос
/ 20 апреля 2020

Q1: я из Java / C# фон и изучаю Swift прямо сейчас. Когда я пишу код java или C#, для каждого свойства в классе мне нужно написать getter и setter. Тем не менее, я обнаружил, что мы не так быстро пишем геттер и сеттер. Мне интересно, почему это так.

Q2: я знаю, что есть два вида свойств: хранимые и вычисляемые свойства. Кажется, нам нужно только установить метод получения или установки для вычисляемых свойств. Это правда?

1 Ответ

2 голосов
/ 20 апреля 2020

Java исторически имел другой синтаксис для прямого доступа к свойству по сравнению с вызовом метода, который получает значение («получатель»). Поскольку вы можете когда-нибудь захотеть переопределить свойство с помощью метода, для согласованности обычно создается метод во всех случаях.

Swift позволяет избежать этой проблемы, используя один и тот же синтаксис для прямого доступа к свойству и для «получателей» ( вычисляемые свойства). Это означает, что вы можете позже передумать, не влияя на вызывающих, и поэтому нет причин создавать метод «на всякий случай».

Вычисляемое свойство определено как свойство с " getter "(метод get) в Swift.

...