2015-08-13 3 views
1

Что ожидает оператор as как аргумент правой руки?Как оператор в Swift

и почему он не принимает ClassName.self или variableName.dynamicType?

Мой вопрос сводится к разнице между .self, .dynamicType и real класс имя?

+1

Это связано с [этот вопрос] (http://stackoverflow.com/questions/30905060/using-a-type-variable-in-a-generic/30905722#30905722); возможно, вы найдете там ответ. – jtbandes

ответ

4

as Оператор ожидает Статический Тип как аргумент правой руки. Здесь слово static означает что-то, известное компилятору во время компиляции.

Оба .self и .dynamicType являются экспрессии с, и, следовательно, не ожидается as оператором. Выражения оцениваются во время выполнения. В случае .self и .dynamicType, они возвращают тип после оценки.

В любом случае, оператор as не ожидает, что что-то оценивается как его аргумент правой руки, а «жестко закодированный» тип. Эта функция позволяет Swift проводить проверку времени компиляции.

Надеюсь, что это имеет смысл.

Смежные вопросы