본문 바로가기

Programming4

Swift-6. 옵셔널 체이닝, nil 병합 ** edwith - Swift 프로그래밍 입문 강의 참고 ** # 옵셔널 체이닝 # - 옵셔널 체이닝은 옵셔널 내부의 내부의 내부로 옵셔널이 연결되어 있을 때 유용하기 활용 가능 - 매번 nil 확인을 하지 않고 최종적으로 원하는 값이 있는지 없는지 확인 가능 class Person { var name: String var job: String? var home: Apartment? init(name: String) { self.name = name } } class Apartment { var buildingNumber: String var roomNumber: String var 'guard': Person? var owner: Person? init(dong: String, ho: String) .. 2023. 2. 24.
Swift-5. 인스턴스 생성 및 소멸 ** edwith - Swift 프로그래밍 입문 강의 참고 ** # init / deinit # 인스턴스를 생성하는 이니셜라이저(init)와 클래스의 인스턴스가 소멸될 때 호출되는 디이니셜라이저(deinit) 프로퍼티 초기값 - swift의 모든 인스턴스는 초기화와 동시에 모든 프로퍼티에 유효한 값이 할당되어 있어야 함. - 프로퍼티에 미리 기본값을 할당해두면 인스턴스가 생성됨과 동시에 초기값을 지니게 됨. class PersonA { // 모든 저장 프로퍼티에 기본값 할당 var name: String = "unknown" var age: Int = 0 var nickName: String = "been" } // 인스턴스 생성 let eenii: PersonA = PersonA() // 기본값이 인스.. 2023. 2. 24.
Swift-4. 클로저, 프로퍼티 ** edwith - Swift 프로그래밍 입문 강의 참고 ** # 클로저 # - 실행가능한 코드 블럭 - 함수와 다르게 이름정의는 필요하지 않지만, 매개변수 전달과 변환 값이 존재할 수 있다는 점이 동일 - 함수는 이름이 있는 클로저 - 일급객체로 전달인자, 변수, 상수 등에 저장 및 전달이 가능 // 클로저 기본 문법 { (/* 매개변수 목록*/) -> /* 반환 타입 */ in /* 실행 코드 */ } // 클로저 사용 // sum이라는 상수에 클로저 할당 let sum: (Int, Int) -> Int = { (a: Int, b: Int) in return a + b } let sumResult: Int = sum(1, 2) print(sumResult) // 3 // 함수의 전달인자로서의 클로저.. 2023. 2. 24.
Swift-2. 반복문, 옵셔널/옵셔널체이닝/옵셔널바인딩 ** edwith - Swift 프로그래밍 입문 강의 참고 ** # 반복문 # for - in 구문 // for-in 구문 기본 형태 for item in items { /* 실행 구문 */ } // 예시 var number = [1, 2, 3] let people = ["yagom": 10, "eric": 15, "mike": 12] for num in number { print(num) } for (name, age) in people { print("\(name): \(age)") } repeat - while 구문 // repeat-while 구문 기본 형태 repeat { /* 실행 구문 */ } while /* 조건 */ // 예시 repeat { number.removeLast() } whi.. 2023. 2. 24.