자료형 체크

Updated:

🔷 자료형 체크

class Pet { // 애완동물 클래스
	var name : String
	init(name : String) {
		self.name = name
	}
}

class Cat: Pet { // Pet 클래스를 상속하는 Cat 클래스
	var hair: String
	init(name: String, _ hair: String) {
		self.hair = hair
		super.init(name: name) // 부모 클래스의 생성자 호출
	}
}

class Dog: Pet {  // Pet 클래스를 상속하는 Dog 클래스
	var kind: String
	init(_ name: String, kind: String) {
		self.kind = kind
		super.init(name: name) // super 는 부모 클래스의 것
	}
}

let myDog = Dog("똘똘이", kind: "치와와")
let myCat = Cat(name: "개냥이", "짧은 털")
let myPets: [Pet] = [myDog, myCat]

myPets.forEach { // collection 에 forEach 로 반복문 돌리기
	if $0 is Dog { // is 를 통해 해당 객체의 자료형 판별 가능!
		print("\($0.name) 은 강아지 입니다") // 똘똘이 은 강아지 입니다
	} else if $0 is Cat { // $0 배열의 아이템 하나하나
		print("\($0.name) 은 고양이 입니다") // 개냥이 은 고양이 입니다
	}
}


Reference

Swift Tip of the day - 스위프트 기초 문법 - https://spangle-wedelia-2dc.notion.site/Swift-Tip-of-the-day-c428bfd990674bcfa2a4973e5d08c4eb

꼼꼼한 재은 씨의 스위프트 문법편 - https://book.jacobko.info/#/book/1186710233

Categories:

Updated:

Leave a comment