swift - iOS

[swift] 기본 문법 : 상수&변수, 데이터 타입, 컬렉션 타입

excited-hyun 2021. 6. 5. 15:41
반응형

1. 명명법

- 기본적으로 swift는 모든 대소문자를 구분한다.

- Lower Camel Case : 함수, 메소드, 변수, 상수

- Upper Camel Case : 타입 ( 클래스, 구조체, ... )

 

2. 상수와 변수 선언

let : 상수 선언 키워드

var : 변수 선언 키워드

let name : String = "MyName" //상수
var age : Int = 24  //변수

print("name: \(name)") 
print("age: \(age)")

age = 28        //변수는 변경 가능
print("age: \(age)")

name = "NewName"    //상수는 변경 불가! - 에러 발생

 

3. 기본 데이터 타입

1) 기본 데이터 타입

  • Bool
  • Int, UInt
  • Float, Double
  • Character, String

2) Bool

true false만 값으로 가질 수 있음

var tempBool : Bool = true
var varBool = false  // : Bool 생략 가능

tempBool = false
tempBool = 1        //오류 발생
tempBool = 3        //오류 발생

varBool = true
varBool = 0         //오류 발생

3) Int

정수만 값으로 가질 수 있음

var tempInt : Int = 3
var varInt = 5      // : Int 생략 가능

tempInt = -3
tempInt = 3.14      //오류 발생

varInt = -5
varInt = 5.2        //오류 발생

4) Float, Double

Float : 실수 타입이며 32비트 부동소수형

Double : 실수 타입이며 64비트 부동소수형

: Type부분을 생략하는 경우엔 소수를 넣어주면 자동으로 double형으로!

 

var tempFloat : Float = 3.14
tempFloat = 3
var tempDouble : Double = 12.9
tempDouble = 12

tempFloat = tempDouble       //오류 발생
tempDouble = tempFloat       //오류 발생

var tempVar = 3.14
tempVar = tempFloat     //오류 발생
tempVar = tempDouble

5) Character, String

Character : 문자 타입이며 큰따옴표("") 사용

String : 문자열 타입이며 큰따옴표("") 사용

var tempChar : Character = "A"
tempChar = "ABC"        //오류 발생

var tempString : String = "Hello World!"
tempString = tempString + " Hi!"

6) nill

다른 언어의 NULL, Null과 유사

 

4. 컬렉션 타입

1) Array

순서가 있는 리스트 컬렉션

  • 멤버가 순서(인덱스)를 가진 리스트 형태의 컬렉션 타입
// 다양한 선언 방법
// var integers: Array<Int> = Array<Int>()
// var integers: Array<Int> = [Int]()
// var integers: Array<Int> = []
// var integers: [Int] = Array<Int>()
// var integers: [Int] = [Int]()
// var integers: [Int] = []
// var integers = [Int]()

var arrTemp = ["A", "B", "C", "D", "E"]

print(arrTemp[0])   // "A"
print(arrTemp)      // ["A", "B", "C", "D", "E"]
print(arrTemp[2...])    // ["C", "D", "E"]
print(arrTemp[1...3])   // ["B", "C", "D"]
// 인자 수 확인 
print(arrTemp.count)    // 인자 개수 : 5

// 인자 교체
arrTemp[2] = "Z"
print(arrTemp)          // ["A", "B", "Z", "D", "E"]

// 인자 추가
arrTemp.append("F")     
print(arrTemp)          // ["A", "B", "C", "D", "E", "F"]
print(arrTemp.count)    // 인자 개수 : 6

// 포함 여부 확인
print(arrTemp.contains("A"))	// true
print(arrTemp.contains("H"))	// false

2) Dictionary

  • '키'와 '값'의 쌍으로 이루어진 컬렉션 타입

아래의 출력 결과를 보면 알 수있듯, 순서가 없음

var dictTemp = ["key1": "value1", "key2": "value2", "key3": "value3"]

// 여러 가지 선언 방법
// var anyDictionary: Dictionary<String, Any> = [String: Any]()
// var anyDictionary: Dictionary <String, Any> = Dictionary<String, Any>()
// var anyDictionary: Dictionary <String, Any> = [:]
// var anyDictionary: [String: Any] = Dictionary<String, Any>()
// var anyDictionary: [String: Any] = [String: Any]()
// var anyDictionary: [String: Any] = [:]
// var anyDictionary = [String: Any]()

print(dictTemp)     // ["key3": "value3", "key1": "value1", "key2": "value2"]
// 키만 가져오기
print(dictTemp.keys)        // ["key2", "key3", "key1"]
// 값만 가져오기
print(dictTemp.values)      // ["value2", "value1", "value3"]

//키에 해당하는 값 변경
dictTemp["key1"] = "value5"
print(dictTemp)     // ["key3": "value3", "key1": "value5", "key2": "value2"]

// 키에 해당하는 값 제거
dictTemp.removeValue(forKey: "key1")
dictTemp["key2"] = nil
print(dictTemp)     // ["key3": "value3"]

//키와 값 추가
dictTemp["key4"] = "value 4"
print(dictTemp)     //["key3": "value3", "key4": "value 4"]

3) Set

  • 중복되지 않는 멤버가 순서없이 존재하는 컬렉션
var setTemp : Set = ["Apple", "Banana", "Peach", "Melon"]

//원소 추가
setTemp.insert("Orange")
print(setTemp)      // ["Peach", "Orange", "Apple", "Melon", "Banana"]

//포함 여부 확인
print(setTemp.contains("Apple"))        // true
print(setTemp.contains("Lemon"))        // false

//원소 개수
print(setTemp.count)    // 5

//원소 삭제
setTemp.remove("Melon")
print(setTemp)          // ["Apple", "Peach", "Banana", "Orange"]
print(setTemp.count)    // 4

집합 연산

let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [3, 4, 5, 6, 7]

// 합집합
let union: Set<Int> = setA.union(setB)
print(union) // [2, 4, 5, 6, 7, 3, 1]

// 합집합 오름차순 정렬
let sortedUnion: [Int] = union.sorted()
print(sortedUnion) // [1, 2, 3, 4, 5, 6, 7]

// 교집합
let intersection: Set<Int> = setA.intersection(setB)
print(intersection) // [5, 3, 4]

// 차집합
let subtracting: Set<Int> = setA.subtracting(setB)
print(subtracting) // [2, 1]

 

 

 

boostcourse의 <iOS 프로그래밍을 위한 스위프트 기초> 강의를 바탕으로 작성하였습니다.

728x90
반응형

'swift - iOS' 카테고리의 다른 글

[swift] 기본 문법 : 옵셔널  (0) 2021.06.05
[swift] 기본 문법 : 함수  (0) 2021.06.05