목록Swift/공식문서 정리 ( 문법 ) (28)
GGURUPiOS
Structures and Classes ( 구조체와 클래스 ) 클래스와 구조체는 코드를 조직화 하기 위해 일반적으로 사용함 다른 언어와 다르게 인터페이스 및 구현 파일을 만들 필요가 없음 단일 파일에서 정의하고 클래스 또는 구조체에 대한 외부 인터페이스는 다른 코드에서 사용할 수 있도록 자동으로 제공 됨 클래스의 인스턴스는 전통적으로 객체라고 함. 그러나 스위프트의 구조체와 클래스는 다른 언어보다 기능면에서 인스턴스에 가까움. 그래서 이 장에서는 인스턴스로 부름. 구조체와 클래스 비교 스위프트의 구조와 클래스는 공통점이 많음. 값을 저장하기 위한 프로퍼티 정의 기능을 제공하기 위한 메소드 정의 subscript 문법을 이용해 특정 값을 접근할 수 있는 subscript 정의 초기 상태를 설정할 수 있는..
Enumerations ( 열거형 ) 열거형은 관련된 값으로 이루어진 그룹의 공통의 형임 타입 세이프티를 보장하는 방법으로 다룰 수 있게 해줌 열거형은 1급 객체형 이어서 계산된 프로퍼티를 제공하고 초기화를 지정하거나 초기 선언을 확장해 사용할 수 있음 열거형 문법 enum SomeEnumeration { // enumeration definition goes here } 일반적으로 위와 같이 작성한다 enum CompassPoint { case north case south case east case west } /* 공식문서에서 열거형은 다른언와 달리 기본적으로 정수 값이 할당되지 않는다. north,south,east,west는 0,1,2,3 이라는 값을 가지지 않으며, 각 case는 그냥 고유한 ..
Closure 함수를 만들지 않고 함께 실행되는 그룹코드 클로저는 정의된 문맥에서 모든 상수 및 변수에 대한 참조를 캡쳐하고 저장 가능. Swift는 이 캡쳐와 관련한 모든 메모리를 알아서 처리함 클로저는 다음 세 가지 형태 중 하나를 갖는다 전역 함수 : 이름이 있고 어떤 값도 캡쳐하지 않는 클로저 (함수도 클로저의 종류라는 말임) 중첩 함수 : 이름이 있고 관련한 함수로 부터 값을 캡쳐 할 수 있는 클로저 클로저 표현 : 경량화 된 문법으로 쓰여지고 관련된 문맥(context)으로부터 값을 캡쳐할 수 있는 이름이 없는 클로저 Swift에서 클로저 표현은 최적화 되어서 간결하고 명확함. 최적화 내용 문맥(context)에서 인자 타입(parameter type)과 반환 타입(return type)의 추..
Functions ( 함수 ) 함수는 특정 작업을 수행하는 독립적인 코드 덩어리임. 다양한 함수 유형이 있음 함수 정의 및 호출 함수를 정의할 때 func 키워드와 함수명 파라미터 형, 반환 형을 정의 함 func greet(person: String) -> String { let greeting = "Hello, " + person + "!" return greeting } // 더 짧게 만들기 func greetAgain(person: String) -> String { return "Hello again, " + person + "!" } 함수 파라미터(매개변수)와 반환 값 스위프트에서 파라미터와 반환값은 매우 유연함. 여러 유형이 있음 파라미터가 없는 함수 func sayHello() -> Str..
Control Flow 스위프트에는 다양한 제어문이 있음 while, for - in loop, if , guard , switch 등 For-In 문 for-loop 를 사용해서 배열, 숫자나 문자열의 범위만큼 반복 함 전 포스팅에서 언급했듯이 딕셔너리의 경우 튜플로 방출 만약 for 문에서 값이 필요하지 않을 경우 _를 사용해 무시 가능 색깔이 안나와 for index in 1...5 { print("\(index) times 5 is \(index * 5)") } let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4] for (animalName, legCount) in numberOfLegs { print("\(animalName)s have \(legCou..
컬렉션 유형 ( Array, Set, Dictionary ) 스위프트는 Array, Set, Dictionary 세가지 컬렉션 유형을 제공함 위 컬렉션 유형들은 저장할 수 있는 값 및 키 유형에 대해 항상 명확함 컬렉션의 가변성 변수에 할당하면 변경이 가능함. 상수에 할당하면 변경 불가, 크기 내용 모두 변경 불가. 컬렉션 성능을 위해 변경이 필요없으면 상수로 선언하자. Array ( 배열 ) 동일한 유형의 값을 저장함 배열유형 축약형 문법 배열 타입은 Array로 적을수 있고, [Element]형태로 사용 가능 빈 배열 생성 var someInts: [Int] = [] // 이니셜라이저 구문을 사용하여 만들 수 있음 기본값으로 배열 생성 var threeDoubles = Array(repeating: ..