Я новичок в Swift и столкнулся с этой проблемой. Почему я не могу присвоить значение fishy.depth? Наследование более чем одного протокола в Swift
-1
A
ответ
0
В нем говорится, что fishy - это пустая константа, вы должны установить fishy как var, чтобы она могла изменить ее значение.
+0
Большое вам спасибо. –
+0
Приветствую вас, вы можете принять ответ, пожалуйста, tnx! –
0
не может иметь экземпляр. протокол является добрым как утверждение.
struct Carp: Fish, UnderWater{
var fins: Int
var depth: Int
init(fins: Int) {
self.fins = fins
self.depth = 0
}
init(depth: Int) {
self.fins = 0
self.depth = depth
}
}
func surface<T: Fish & UnderWater>(t: inout T){
t.depth = 0
}
let carp = Carp(depth: 0)
surface(t: &carp)
Вы можете отправить Carp в функцию, а не протокол. Вы можете создать экземпляр, класс, перечисление, но не протокол.
Пожалуйста, напишите * код *, а не скриншоты. –
Функциональные параметры: * константы. * В зависимости от вашего намерения вы можете: 1) использовать параметр 'inout' или 2) определять протоколы как * class protocol * (пример: http://stackoverflow.com/questions/33471858/ скор-протокол слабый не может-быть применен к неклассовому типу). –