Во время игры на игровой площадке Swift я заметил, что Self
с капиталом "S" доступен вместе с нижним регистром Self
. Есть ли разница между ними? Если да, то каковы используются для этих двух, особенно для Self
?
Различие в Swift между прописными буквами "Я" и строчными "я"
Ответ 1
Self
относится к типу текущей "вещи" внутри протокола (что соответствует протоколу). Пример его использования см. В Функция func возвращает Self.
Единственные официальные документы, которые я нашел для Self
, находятся в Протоколе ассоциированного типа на языке Swift Programming. Это удивительно не описано в разделах о протоколах или вложенных типах.
Ответ 2
в протоколе и декларации расширения используйте Self else self
extension protocolName where Self: UIView
{
func someFunction()
{
self.layer.shadowColor = UIColor.red.cgColor
}
}