목록분류 전체보기 (179)
study record
let n: Int = Int(readLine()!)! var str: String = "" for _ in 0..
*이 글은 책 “스위프트 프로그래밍”을 읽고 작성한 글입니다. 스위프트의 where절은 특정 패턴과 결합하여 조건을 추가하는 역할을 한다. 조건을 더 추가하고 싶을 때, 특정 타입에 제한을 두고 싶을 때 등등 다양한 용도로 사용된다. where 절의 활용 where 절은 크게 두 가지 용도로 사용된다. 패턴과 결합하여 조건 추가 타입에 대한 제약 추가 다시 말해 특정 패턴에 Bool 타입 조건을 지정하거나 어떤 타입의 특정 프로토콜 준수 조건을 추가하는 등의 기능이 있다. // 값 바인딩, 와일드카드 패턴과 where 절의 활용 let tuples: [(Int, Int)] = [(1, 2), (1, -1), (1, 0), (0, 2)] for tuple in tuples { switch tuple { c..
* 이 글은 책 "스위프트 프로그래밍"을 읽고 작성한 글입니다. 스위프트에는 문법에 응용할 수 있는 다양한 종류의 패턴이 있다. 여러 패턴을 잘 숙지하면 스위프트 코드의 양을 줄이는 효과는 물론, 스위프트 문법을 좀 더 잘 활용할 수 있다. 패턴은 ‘단독 또는 복합 값의 구조를 나타내는 것’이고 패턴 매칭은 ‘코드에서 어떤 패턴의 형태를 찾아내는 행위’라고 할 수 있다. 쉽게 말해 이러이러한 것을 표현하고 싶다면 이러이러한 패턴을 통해 표현하면 된다고 이해하면 된다. 대부분의 패턴은 switch, if, guard, for 등의 키워드와 아주 친하며 두 개 이상의 키워드가 합을 이뤄 동작한다. 대부분의 패턴은 switch에서 강력하게 작용한다. 스위프트의 패턴은 크게 두 종류로 나뉜다. 값을 해체(추출)..
*이 글은 책 “스위프트 프로그래밍”을 읽고 작성한 글입니다. 스위프트에는 타입 내부에 타입을 정의하고 구현할 수 있다. 이처럼 타입 내부에 새로운 타입을 선언해준 것을 중첩 타입이라고 부른다. 중첩 데이터 타입 함수를 중첩해 사용했듯이 클래스 내부에 새 클래스, 클래스 내부에 새 구조체, 구조체 내부에 새 열거형 등의 타입을 중첩해서 타입 내부에 새 타입을 정의할 수 있다. class Person{ enum Job { case jobless, programmer, student } var job: Job = .jobless } Person 클래스 내부에는 중첩 데이터 타입으로 Job이라는 열거형 타입이 정의되어 있다. 중첩 데이터 타입을 사용할 때는 자신을 둘러싼 타입의 이름을 자신보다 앞에 적어줘야 ..