Online Swift Playground
//Structures (Value type)
struct Person {
private var name: String
private var age: Int
// var name: String = "Ivan Ivanov"
// var age: Int = 32
// private init() {
// self.name = "Ivan Ivanov"
// self.age = 32
// }
init(name: String = "Ivan Ivanov", age: Int = 32) {
self.name = name
self.age = age
}
mutating func clear(){
self.name = ""
self.age = 0
}
static func clear(person: inout Self){
person.name = ""
person.age = 0
}
func isEmpty() -> Bool{
if self.name == "" && self.age == 0 {
return true
} else {
return false
}
}
static func update(person: Self) -> Self{
let newPerson = Person(name: person.name, age: person.age + 1)
return newPerson
}
}
var p1 = Person()
print(p1)
Person.clear(person: &p1)
print(p1)
p1 = Person(name: "Petr Petrov")
print(p1)
p1 = Person(age: 42)
print(p1)
p1 = Person(name: "Petr Petrov", age: 42)
print(p1)
var p2 = Person.update(person: p1)
print(p2)
p2.clear()
print(p2.isEmpty())
extension Person {
// init(name: String, age: Int) {
// self.name = name
// self.age = age
// }
static func defPerson() -> Self{
let defPerson = Person(name: "Ivan Ivanov", age: 32)
return defPerson
}
}
var p3 = Person.defPerson()
print(p3)
Комментариев нет:
Отправить комментарий