[Swift 4] 다양한 배열선언 및 초기화(스타일 비교)

2018. 2. 14. 10:00IT, Smart Life


스위프트의 가장 기본적인 배열선언 및 초기화 형태는 아래와 같습니다.


Array<아이템타입>()         // 제너릭 

[아이템타입]()


* 제너릭(Generic) : <>기호를 사용하여 배열 내부에서 사용할 아이템 타입을 지정하는 문법 (Java, C# 에서도 사용)



이 외에도 스위프트에는 다양한 배열선언과 초기화 스타일이 있습니다.

아래는 아이템타입이 String 인 배열을 선언하고 초기화하는 6가지 방식을 비교해 본 것입니다.


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
//: Playground - noun: a place where people can play
 
import UIKit
 
// 다양한 방식의 Swift 배열선언 및 초기화
 
// case1
var astronaut1 = Array<String>()
 
// case2
var astronaut2 = [String]()
 
// case3
var astronaut3 : [String]
astronaut3 = [String]()
 
// case4
var astronaut4 : [String]
astronaut4 = []
 
// case5
var astronaut5 : [String= []
 
// case6
var astronaut6 : [String= Array()
 
// case7
var astronaut7 : Array<String> = [String]()
cs



어떤 방식이 옳다는 것은 없다고 각자 익숙한 형태를 골라 사용하면 된다고 하는데, 개인적으로는 case1, case2 와 같은 방식을 주로 사용합니다. 가장 깔끔하고 직관적인 것 같습니다.

case3과 case4의 경우는 선언에 이어 바로 초기화를 한다면 case1, case2의 형태가 차라리 나은 것 같고, 선언과 초기화를 별도로 진행한다면 case4의 경우는 아이템 타입을 확인하기 위해, 선언문을 다시 찾아봐야하는 불편함이 있는 것 같습니다.

case5를 쓸 바에는 그냥 case2 형식을 쓰는 것이 좋을 것 같습니다.

case7번과 같은 경우는 선언이 가능하긴 하지만, 저렇게 써야 할 필요성을 못 느끼겠네요.