![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/zvHkB/btqMmqepNhB/gQV9xjclFeQXSAtKUJarO1/img.png)
정의 문법 ,구조체와 클래스는 코드를 블럭으로 쌓아가는 유연한 구조를 만드는 일반적인 목적입니다. 구조체와 클래스의 기능을 추가하기 위해 변수, 상수, 함수를 만들 때와 동일한 문법을 사용하며 프로퍼티와 메소드를 정의할 수 있습니다. 다른 언어들과는 다르게 스위프트는 커스텀 구조체와 클래스를 만들기 위해 별도의 분리된 인터페이스나 파일들을 만들 필요가 없습니다. 스위프트에선 한 파일에 클래스나 구조체를 정의하면 자동적으로 외부 인터페이스가 외부에서도 사용할 수 있습니다. 구조체와 클래스를 비교하면 구조체와 클래스 둘 다 가능한 것들 값을 저장할 프로퍼티 정의 가능 기능을 제공할 메소드 정의 가능 서브스크립트 정의 가능(이건 차후에 나올 서브스크립트 챕터에 자세히) 생성자 정의 가능 기본적인 구현을 넘어서..
eunmeration은 관련있는 값들을 그룹지어 주는 타입이고 코드를 타입적으로 안전하게 값들을 다룰 수 있도록 돕습니다. 만약 당신이 C에 익숙하다면 C의 enumeration은 이름과 관련된 정수 값을 세트로 가지고 있다는 것을 알고 있을 것입니다. swift의 enumeration은 좀 더 유연성 있게 되었습니다. 그리고 enumeration의 어떤 case도 값을 제공할 필요가 없습니다. 만약 raw value 라고 불리는 한 값이 각각의 enumeration case 값에 제공된다면, 그 값은 string, character 또는 어떤 정수, 실수값이든 가능합니다. swift의 enumeration은 그 자체로 first-class 타입입니다.( 정확히 무슨 의미인지 모르겠는데 대강 클래스 타입..
클로저는 독립된 기능 블록으로 코드 안에서 전달되고 사용될 수 있습니다. 스위프트의 클로저는 C와 Objective-C의 블록이나 다른 프로그래밍 언어의 람다식과 유사합니다. 클로저는 정의된 문장안에서 어떤 상수나 변수도 저장 및 챕쳐가 가능합니다. 이것은 변수나 상수를 "캡쳐링한다"라고 알려져 있으며, 스위프트는 당신을 위한 메모리 관리 캡쳐링을 다룰 수 있습니다. 전에 Function에서 다룬 Global, nested function은 사실 클로저의 특별한 케이스입니다. 클로저는 세가지 형태중 하나를 가질 수 있습니다. Global function은 어떤 값도 캡쳐하지 않고 이름을 가지고 있는 클로저 입니다. Nested function은 function 내부의 값을 캡쳐할 수 있고 이름을 가지고 ..
너무나도 많이 쓰는 기능이라 알고 있는 부분이 많아 번역할 부분이 비교적 적었다. 자주 사용하지 않아 존재 조차 까먹고 있는 기능이나 처음배우는 기능 위주로 짤막하게 번역해보았다. Functions with Multiple Return Values 리턴 값을 여러개를 줄 때 라벨을 붙여 줄 수 있다. 리턴된 값을 받는 튜플 변수에서 값을 참조할 때도 변수.라벨 로 접근하면 된다. func minMax(array: [Int]) -> (min: Int, max: Int) { var currentMin = array[0] var currentMax = array[0] for value in array[1.. currentMax { currentMax = value } } return (currentMin, c..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/FAQTP/btqL2webGy3/WESDcxZTT2oOlWbTCMmIC1/img.png)
스위프트는 여러번 반복할 수 있는 while문이나, if guard 그리고 switch 같이 특정 상태에 기반하여 실행되는 조건문들, 그리고 break 나 continue 처럼 실행의 흐름을 다른 포인트로 이동시키거나 하는 다양한 Control flow 문을 제공합니다. 스위프트는 또한 배열, 딕셔너리, ranges, 스트링값이나 다른 sequences를 쉽게 반복할 수 있는 for-in 루프문을 제공합니다. 스위프트의 switch 문은 C와 유사한 언어들과 비교하여 많은 이점을 가지고 있습니다. case 는 더 많은 패턴을 매치시킬 수 있고 매치된 값은 임시적인 상수 혹은 변수로 저장되어 case의 바디 내부에서 사용 할 수 있습니다. 또한 where 를 사용하여 복잡한 조건을 매칭시킬 수 도 있습니다..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bdQQps/btqLTxSYD0q/wdv5OkI0RKrCuylISgR610/img.png)
전편에 이어서 작성. 학창시절땐 영문 읽는게 그렇게 싫었는데 왜 이렇게 재밌지 이건 Swift는 세가지 주요한 Collection type을 제공하는데 알다시피 Array, Set 그리고 Dictionary. Array는 정렬된 값 집합. Set은 정렬되지않은 특수한 값 집합. Dictionary는 정렬되지않은 키-값 으로 되어 있는 집합. 스위프트에선 타입에 깐깐한 언어 답게 값과 키를 저장할 때 명확하게 타입을 선언해야함. Mutability of Collections 다른 타입들과 마찬가지로 var는 값 바꿀 수 있고 불변성 주려면 let Arrays 정렬된 리스트에 값은 타입 값들을 저장함. 같은 값이라도 여러번 다른 위치에 저장할 수 있음. 선언하는 방법은 축약방법이 다양해서 여러가지가 있는데,..
docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html 을 내가 생각하기에 중요하다고 느끼는 부분을 번역 및 요약해서 작성. 백준 알고리즘 문제를 풀어보면서 기초가 부족하다고 느끼는 부분이 많았기에 번역본이 있음에도 원문을 보며 공부하기로 했다. 1장은 사실 연산자 부분인데 기존에 많이 사용해서인지 내가 모르는 부분이 거의 없었기에 생략하고 알고리즘 문제를 풀면서 많이 사용되는 문자열 챕터부터 시작하기로 했다. 영어 4등급의 번역이라 부족한 부분이 많을 거라 오역부분이 있으면 많은 지적 부탁드린다. String 그리고 Characters string은 characters의 모음. Swift의 String 값은 Character 값의 Colle..