在Playground中定义一个协议Leg,并定义两个类Dog和Fish,具体要求如下:(1) 协议中有一个Int类型的只读属性leg。(2) Dog类采纳了Leg协议,Fish类没有采纳协议。 (3) 定义一个数组array,它的元素是Dog(), Fish()。 (4) 遍历数组,如果数组元素采纳了协议,输出“有腿”,否则输出“无腿”。
时间: 2023-12-10 07:37:25 浏览: 148
ReactiveAndroid:一个Playground项目,用于测试Android中基于异步,React式和协同程序的各种网络
代码如下:
```swift
protocol Leg {
var leg: Int { get }
}
class Dog: Leg {
let leg: Int = 4
}
class Fish {
let name: String
init(name: String) {
self.name = name
}
}
let array: [Any] = [Dog(), Fish(name: "Nemo")]
for element in array {
if let leggedElement = element as? Leg {
print("有腿")
} else {
print("无腿")
}
}
```
输出结果:
```
有腿
无腿
```
解释:定义了一个 Leg 协议,其中有一个只读属性 leg。Dog 类采纳了 Leg 协议,Fish 类则没有采纳。定义了一个数组 array,其中元素包括一个 Dog 实例和一个 Fish 实例。遍历数组,如果数组元素采纳了 Leg 协议,则输出“有腿”,否则输出“无腿”。最终输出结果为“有腿”和“无腿”。
阅读全文