250x250
반응형
05-12 12:59
Today
Total
«   2024/05   »
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 31
Notice
Recent Posts
Recent Comments
Link
Archives
관리 메뉴

Bill Kim's Life...

[Swift] Type Inference : 타입 추론을 통한 타입 지정 방식 본문

CS(컴퓨터 과학)/Swift

[Swift] Type Inference : 타입 추론을 통한 타입 지정 방식

billnjoyce 2020. 9. 8. 11:31
728x90
반응형
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

 

[Swift] Type inference

[Swift] 타입 추론(Type Inference) 에 관한 강의 자료입니다.

www.slideshare.net

 


[참고 자료(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

728x90
반응형
Comments