protocol Avisable {
var nombre : String {get}
var bateria : Int{get set}
func aviso()-> String
}
extension Avisable {
func aviso() -> String {
if bateria < 20{
return "Aviso: batería baja en \(nombre)"
}else{
return "Batería suficiente en \(nombre)"
}
}
}
struct Sensor: Avisable {
let nombre: String
var bateria: Int
let ubicacion: String
}
struct Robot: Avisable {
let nombre: String
var bateria: Int
let modelo: String
func aviso() -> String {
if bateria < 20{
return "Robot \(nombre) necesita recarga urgente"
}else{
return "Robot \(nombre) operativo"
}
}
}
let robot1 = Robot(nombre: "R2", bateria: 15, modelo: "explorador")
let robot2 = Robot(nombre: "T7", bateria: 80, modelo: "transporte")
let sensor1 = Sensor(nombre: "S1", bateria: 10, ubicacion: "laboratorio")
let sensor2 = Sensor(nombre: "S2", bateria: 60, ubicacion: "almacén")
// Hueco 6:
// Declara un array llamado elementos que pueda contener valores
// de cualquier tipo que adopte Avisable.
// El array debe contener robot1, robot2, sensor1 y sensor2.
var elementos: [Avisable] = [robot1, robot2, sensor1, sensor2]
// Hueco 7:
// Recorre el array elementos e imprime el resultado de llamar
// al método aviso() de cada elemento.
for elemento in elementos{
print(elemento.aviso())
}
To embed this project on your website, copy the following code and paste it into your website's HTML: