과제
[마스터] Struct와 Class / 프로토콜
guswlsdk
2025. 2. 5. 17:28
반응형
struct User{
var name: String
var age: Int
}
var a = User(name: "유현진", age: 5)
var b = User(name: "유현진 아님", age: 6)
var c = b
a.name = "유"
print(a)
print(b)
print(c)
b.name = "현"
print(a)
print(b)
print(c)
// User(name: "유", age: 5)
// User(name: "유현진 아님", age: 6)
// User(name: "유현진 아님", age: 6)
// User(name: "유", age: 5)
// User(name: "현", age: 6)
// User(name: "유현진 아님", age: 6)
class User{
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
func showInfo(){
print(name, age)
}
}
var a = User(name: "유현진", age: 2)
var b = a
a.showInfo()
b.showInfo()
a.name = "비둘기"
a.showInfo()
b.showInfo()
// 유현진 2
// 유현진 2
// 비둘기 2
// 비둘기 2
protocol Greetable{
func greet()
}
struct Person: Greetable{
let name: String
func greet() {
print("\(name)입니다. 반갑습니다.")
}
}
class Robot: Greetable{
let id: Int
init(id: Int) {
self.id = id
}
func greet() {
print("\(id)입니다. 반갑습니다.")
}
}
var a = Person(name: "유현진")
var b = Robot(id: 1)
a.greet()
b.greet()
extension Greetable{
func greet(){
print("Hello!")
}
}
struct Alien: Greetable{
}
var c = Alien()
c.greet()
// 유현진입니다. 반갑습니다.
// 1입니다. 반갑습니다.
// Hello!
반응형