- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- sort
- 스위프트디자인패턴
- 프로그래머스
- Design Pattern
- swift split
- 코딩테스트
- 스위프트
- swift
- 알고리즘
- 코테
- coding test
- 정렬
- 정렬 알고리즘
- swift 코딩테스트
- 프로그래머스 level1
- 자료구조
- datastructure
- dart
- 프로그래머스 레벨2
- 프로그래머스 swift
- 감성에세이
- programmer
- 다트
- 디자인패턴
- 정렬알고리즘
- programmers
- rxswift
- swift 알고리즘
- 디자인 패턴
- Algorithm
Bill Kim's Life...
[Swift] Type Inference : 타입 추론을 통한 타입 지정 방식 본문
Swift5의 Type Inference에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다.
#. 개발 환경
- Xcode 11.x 이상
- Swift 5
Inference
추론은 이미 알고 있는 또는 확인된 정보로부터 논리적 결론을 도출하는 행위 또는 과정이다.
따라서 추론은 '어떠한 판단을 근거로 삼아 다른 판단을 이끌어 내는 것’이라고 할 수 있습니다.
Type Inference
Swift에서의 타입 추론은 애플에서도 Swift의 강력한 기능이라고 소개하고 있다.
타입 추론은 변수나 상수를 생성할 때 데이터 타입을 생략하면 컴파일러가 변수 값의 타입을 추론하여 타입을 지정한다.
let name1: String = “Bill Kim” // String 타입으로 상수 선언
let name2 = “Joyce” // 타입 추론을 통한 자동으로 타입 지정
var age1: Int = 20 // Int 타입으로 변수 지정
var age2 = 18 // 타입 추론을 통하여 Int 타입 지정
var weight1: Float = 50.5 // Float 타입으로 변수 지정
var weight2 = 65.2 // 타입 추론을 통하여 Float 타입 지정
Inference with Closure
Closure(클로저)란?
Closure란 일회용 함수를 작성할 수 있는 코드 블럭을 의미
Closure의 대한 자세한 문법은 다른 별도의 강의에서 전달
본 강의는 Closure에서의 추론이 사용되는 예시에 대해서만 소개해드리겠습니다.
클로저 축약방식
- 매개변수 타입과 리턴타입은 추론 가능하므로 축약 가능
- 리턴이라는 지시어도 축약 가능
- 매개변수의 이름은 내부적으로 사용하는 것이므로 축약하고 위치로 참조 가능하므로 축약한다
그렇다면 다양한 타입 추론 종류에 대해서 코드와 함께 살펴보겠습니다.
매개변수 타입 추론
let numbers = [1, 4, 56, 22, 5]
// 일반적인 Closure 예시
let sort = numbers.sorted(by: { (i: Int, j: Int) -> Bool in
return i < j
})
// 매개변수 타입 추론 예시
let sort = numbers.sorted(by: { (i, j) -> Bool in
return i < j
})
리턴 타입 추론
// 리턴 타입 추론 예시
let sort = numbers.sorted(by: { (i, j) in
return i < j
})
리턴 축약
// 리턴 축약 예시
let sort = numbers.sorted(by: { (i, j) in i < j })
매개변수 이름 추론
// 축약형 인수형(매개변수 이름) 사용 예시
let sort = numbers.sorted(by: { $0 < $1 })
// 축약형 인수형을 통해서는 Closure 문법에서의 in도 생략할 수 있다.
후행 클로저 사용
// 후행 클로저를 통하여 {} 지시자를 빼는 것이 가능
let sort = numbers.sorted() { $0 < $1 }
소괄호 생략
// 메서드의 소괄호까지 생략 가능
let sort = numbers.sorted { $0 < $1 }
이상으로 Swift에서의 Type Inference에 대해서 살펴보았습니다.
감사합니다.
www.slideshare.net/BillKim8/type-inference
[참고 자료(References)]
[1] 추론(위키백과) : https://ko.wikipedia.org/wiki/추론
[2] Swift3 타입 추론(Type Infeence) : https://baboototo.tistory.com/12
[3] Swift 기초문법 – 변수, 상수, 기초 데이터 타입 : https://blog.yagom.net/527/
[4] Closure 축약하기 : https://programmers.co.kr/learn/courses/4/lessons/560
[5] Swift 클로저(Closure) : https://nightohl.tistory.com/entry/Swift-클로저Closure
[6] Swift - 클로저 & 고차함수 : https://medium.com/@ggaa96/swift-study-1-클로저-고차함수-abe199f22ad8
'CS(컴퓨터 과학) > Swift' 카테고리의 다른 글
[Swift] Protocol(프로토콜) : 객체 확장 및 위임(Delegate) (0) | 2020.09.08 |
---|---|
[Swift] Tuple(튜플) : 다양한 데이터들의 묶음 (0) | 2020.09.08 |
[Swift] Subscripts : 원하는 값을 쉽게 찾기 위해 정의하는 문법 (0) | 2020.09.08 |
[Swift] Optional : 변수의 값이 있을 수도 있고 없을 수도 있다 (0) | 2020.09.08 |
[Swift] Generics(제네릭) : Swift에서의 템플릿(T) (0) | 2020.06.11 |