Как ссылаться на статическую структуру Swift или переменные класса без использования имени типа?

#swift

#swift

Вопрос:

Было бы неплохо иметь возможность использовать что-то похожее на «self» в качестве псевдонима для доступа к статическим переменным структуры или класса. Есть ли у swift псевдоним для этого?

Например:

 struct MyStruct {
    static let variable = "Hello"
    
    func accessVariable() {
        MyStruct.variable // This works

        self.variable // I'd like to be able to do this.
    }
}
 

Или класс:

 class MyClass {
    static let variable = "Hello"
    
    func accessVariable() {
        MyClass.variable // This works

        self.variable // I'd like to be able to do this.
        class.variable // Or this would be nice too!
    }
}
 

Комментарии:

1. Self.variable

Ответ №1:

Есть три способа:

     MyStruct.variable
    type(of:self).variable
    Self.variable
 

Self Ключевое слово является относительно недавним нововведением Swift и, вероятно, является вашим предпочтительным выбором здесь. Преимущество type(of:) Self простого указания имени заключается в том, что они полиморфны.