Что ожидает оператор as
как аргумент правой руки?Как оператор в Swift
и почему он не принимает ClassName.self
или variableName.dynamicType
?
Мой вопрос сводится к разнице между .self
, .dynamicType
и real класс имя?
Что ожидает оператор as
как аргумент правой руки?Как оператор в Swift
и почему он не принимает ClassName.self
или variableName.dynamicType
?
Мой вопрос сводится к разнице между .self
, .dynamicType
и real класс имя?
as
Оператор ожидает Статический Тип как аргумент правой руки. Здесь слово static означает что-то, известное компилятору во время компиляции.
Оба .self
и .dynamicType
являются экспрессии с, и, следовательно, не ожидается as
оператором. Выражения оцениваются во время выполнения. В случае .self
и .dynamicType
, они возвращают тип после оценки.
В любом случае, оператор as
не ожидает, что что-то оценивается как его аргумент правой руки, а «жестко закодированный» тип. Эта функция позволяет Swift проводить проверку времени компиляции.
Надеюсь, что это имеет смысл.
Это связано с [этот вопрос] (http://stackoverflow.com/questions/30905060/using-a-type-variable-in-a-generic/30905722#30905722); возможно, вы найдете там ответ. – jtbandes