목록Swift/Swift 기초문법 (75)
HIT해
Optional chaining이란?프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있는 문법이다. Optional이란?데이터가 있을수도 없을 수도 있는 상태 Optional Binding이란?오류가 없을때 변수에 할당하는 것 if let 사용을 하면struct Friend { let nickname: String let person: Person?}struct Person { let name: String let pet: Pet?}struct Pet{ let name: String? let kind: String}let pet = Pet(name: "개냥이", kind: "고양이")let person = Person(name: "정대리", pet: pet)..
1. List to Setlet numbers = [1,1,1,2,3,4,5]let uniqueNubers = Set(numbers)// 중복은 자연스레 지워진다. 2. Set to ListuniqueNumbers // {1,2,3,4}let uniqueNumberArranged = Array(uniqueNumbers) // [1,2,3,4]uniqueNumberArranged.sort()
Reduce란?주어진 클로저를 사용하여 시퀀스의 요소를 결합한 결과를 반환합니다.=> 요소들을 다 합친다고 보면 됨 사용예시struct Friend : Hashable { var name : STring var age : Int}let myFriends = [ Friend(name:"철수", age : 10) Friend(name:"짱구", age : 10) Friend(name:"유리", age : 10) Friend(name:"멩구", age : 10)]let totalAge = myFriends.reduce(0) { partialResult , aFriend in return partialResult + aFriend.age}// reduce(초기값) { partialResult , aFrie..
ListSetDictionary이 세가지를 활용한 콜렉션 합치기를 알아보자! 1. List 합치기let myFriends = ["철수", "짱구"]let otherFriends = ["멩구", "유리"]let totalFriends = myFriends + otherFriends// myFriends.append(contentsOf: otherFriends)// 보통 이방식으로 많이 합치는데 단점이 두가지 있다.// 1. let으로 선언되어있기에 append를 사용할 수 없다.// 2. 기존의 한 배열에 추가하는 형태이기에 초기값의 변경이 일어난다 (알고리즘 풀이할때 곤욕!) 이때 List와 Set을 합칠 수도 있다.let myFriends = ["철수", "짱구"]let otherFriends : Se..
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/aboutswift Documentation docs.swift.org
Convenience init이란?추가적인 생성자 정의 일반적인 Class initclass Friend { var name : String var age : Int // 클래스라서 생성자를 만들어주어야함 init(name: String){ self.name = name self.age = 10 }}let myFriend = Friend(name : "자우림") Convenience initclass Friend { var name : String var age : Int // 클래스라서 생성자를 만들어주어야함 init(name: String){ self.name = name self.age = 10 } ..
멀티 트레일링 클로저란?트레일링(trailing : 끝)매개변수로서 클로저를 가지는 것인데. 매개변수가 마지막에 있을떄를 뜻합니다. 예시func trailingClosure(name : String = "", completion : () -> Void) { print("\(name}") completion()} 매개변수로서 위치가 오른쪽에 있기만 하면 트레일링 클로저라고 한다. 사용할때는 보통trailingClosure(completion: { print("closure")})// or// 축약형trailingClosure { print("closure")} 이렇게 사용하게 되는데 클로저가 매개변수로서 많이 들어갔을때 : 멀티 트레일링 클로저func multiClosures(first: ()-> V..
Codable이란?JSON형태의 타입을 Decode Encode 하게 하는 프로토콜decode - JSON to struct || classencode - struct || class to JSON typealias Codable = Decodable & Encodable 사용예시let jsonFromServer = """{ "nick_name" : "자우림" "job" : "singer" "user_name" : "2125"}"""struct User : Codable { var nickname : String var job : String var myUserName : String enum CodingKeys : String, CodingKey{ case ni..