본문 바로가기
STUDY/iOS

[앨런 Swift문법 마스터 스쿨] 열거형 case 패턴, 속성과 메서드 정리 복습!

by 23g 2024. 7. 27.

 

0. 복습을 합시다

 

진도의 압박 속에

앞 내용을 이해 못하고 뒤로 갈수록 더더 이해가 안되고 있다!

주말 기념 이해가 잘 안됐던 앞 내용 복습하기

 

아직 이해가 잘 안되는 것들은 보라색으로 배경색을 줬다.

 

직접 코드를 만지다 보면 사용해야 하는 이유를 알지 않을까 싶다..

 

1.

 

열거형 case 패턴

enum Computer {                         // 3가지로 정의
    case cpu(core: Int, ghz: Double)
    case ram(Int, String)
    case hardDisk(gb: Int)
}

switch chip {
...중략
}

//열거형 case 패턴

if case .hardDisk(gb: let gb) = chip {
	print("\(gb) 하드디스크임")
}

//배열
let chiplists: [Computer] = [
...중략
]

for case let .cpu(core: c, ghz: g) in chiplist {
	pritn("\(c)랑 \(g)임" 
}

 

열거형 case 패턴을 이용해 특정 조건만 뽑아서 쓸 수 있다.

 

 

속성 정리

저장 속성

: 구조체나 클래스 틀에서 찍어낸 인스턴스가 가지는 "고유한 데이터 저장 공간"

static Bird{
	var name = "새" //->저장 속성
}

 

계산 속성

: 속성의 형태를 가진 실질적 메서드 -> 메서드를 속성처럼 만든 것

var excute: Double{
	get {
		 ... //-> 계산 속성 getter => 밖에서 접근해서 값을 얻기
	}
	set{
		... // -> 계산 속성 setter => 밖에서 값을 세팅하기
	}
}

 

타입 속성

: 타입 자체에 속한 속성

보편적인 속성 혹은 모두에게 공유해야하는 성격에 사용

class Circle{
	static let pi = 3.141592 // ->저장 타입 속성, static 사용, 초기값 설정 필수
    
    class var multiple: Double{
    	return pi * 2   //-> 계산 타입 속성, static(재정의x) or class(재정의 o) 사용
    }
}

 

속성 감시자

: 변화시점을 관찰하는 실질적 메서드

class Profile{
	...
    var sMessage: String = "메세지" {
    	willset{
        	print("\(sMessage)->\(newValue)") // -> 새 값 저장되기 직전에 호출
        }
        didset{
        	print("\(oldValue)->\(sMessage)") // -> 새 값 저장 직후 호출
        }
    }
    
}

 

메서드 정리

인스턴스 메서드

: 특정 인스턴스와 관련된 함수

class Dog {
	...
    func sit() {
    	print("sit !")   
    }
}

 

 

타입 메서드

: 인스턴스가 아닌 타입 자체에 속한 메서드, 내외부에서 Type.method로 접근해야함

class Dog{
	...
    static func saySpec() {
    	print("\(species)입니다."
    }
}

//사용
Dog.saySpec()

 

 

서브스크립트

: instance[파라미터] 의 형태

class SomeData {
	var datas = ["a"...중략]
    
    subscript(index: Int) -> String {
    	get{
        	return datas[index]
        }
        set{
        	datas[index] = newValue
        }
    }
}

 

접근 제어

: private로 선언된 속성/메서드는 외부에서 접근 불가 -> 은닉화

 

싱글톤 패턴

: static let shared = DataManager()

유일하게 필요로하는 1개의 객체일 때 사용

최근댓글

최근글

skin by © 2024 ttutta