3、按要求编写程序,实现相应功能: (1)通过扩 展为每-一个属性添加下标。 (2)声明一个Farmer的实例farmer。 (3) 通过下标访问farmer的每个属性,求Farmer的动物总数。class Farmer{ var dog:Int = 2 var sheep:Int = 87 var pig:Int = 98
时间: 2024-03-17 08:41:26 浏览: 33
可以使用下面的代码实现:
```
class Farmer {
var dog: Int = 2
var sheep: Int = 87
var pig: Int = 98
subscript(animal: String) -> Int {
get {
switch animal {
case "dog":
return dog
case "sheep":
return sheep
case "pig":
return pig
default:
return 0
}
}
set {
switch animal {
case "dog":
dog = newValue
case "sheep":
sheep = newValue
case "pig":
pig = newValue
default:
break
}
}
}
}
let farmer = Farmer()
let totalAnimals = farmer["dog"] + farmer["sheep"] + farmer["pig"]
print("Farmer has a total of \(totalAnimals) animals.")
```
这段代码中,我们通过下标操作符 `subscript` 来为每个属性添加下标。在这个例子中,我们只允许使用字符串类型的下标,用于访问 `dog`、`sheep` 和 `pig` 这三个属性。下标的 `get` 方法返回对应属性的值,`set` 方法用于设置属性的值。最后,我们声明了一个 `Farmer` 的实例 `farmer`,并通过下标访问每个属性,求出了 `Farmer` 的动物总数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)