날쌘 개발자

스위프트 기본 문법 (1) 본문

ios/기본문법

스위프트 기본 문법 (1)

훈식이 2021. 6. 2. 04:29
728x90

본 내용은 인프런 https://www.inflearn.com/

야곰님의 '야곰의 스위프트 기본문법' https://www.inflearn.com/course/%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95/dashboard

에서 필기한 내용을 바탕으로 옮긴 내용입니다.

상수와 변수

상수 선언 키워드 let

변수 선언 키워드 var

상수 선언 ( 차후에 변경이 불가능)

let 이름: 타입 = 값

변수 선언

var 이름: 타입 = 값

*swift는 띄어쓰기 잘 써야함.

ex)

let sum: Int (선언 후 차후에 할당)

let inputA: Int = 100

let inputB: Int = 200

sum = inputA + inputB

/ 선언 후 첫 할당되는값으로 정해짐

기본 데이터 타입

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

Bool 타입: true / false 값 만

Int : 정수형

UInt(Unsigned integer) : 부호없는 정수

Float : 부동소수타입 (32bit)

Double: 부동소수타입 (64bit)

Character: 한 글자. 유니코드 사용하는 모든 문자 가능 (큰따음표"" 사용)

var someCharacter: Character =  "A"

String: 문자열

var someString: String = "하하하 "

someString = someString + "웃으면 복이와요"

print(someString)                                //하하하 웃으면 복이와요
  • 스위프트에서는 다른 데이터타입과 자료교환은 암시적으로 거의 불가능하다고 봐야함.

Any, AnyObject, nil

Any - Swift의 모든 타입을 지칭하는 키워드

AnyObject - 모든 클래스 타입을 지칭하는 프로토콜

nil - 없음을 의미하는 키워드 (NULL같은느낌)

var someAny: Any = 100

someAny = "어떤 타입도 수용 가능합니다"
class SomeClass {}

var someAnyObjeect: AnyObject = SomeClass()
someAny = nil --> 오류

컬렉션 타입 Array, Dictionary, Set

Array - 순서가 있는 리스트 컬렉션

Dictionary - 키와 값의 쌍으로 이루어진 컬렉션

Set - 순서가 없고, 멤버가 유일한 컬렉션 (집합느낌)

var integers: Array<Int> = Array<Int>()
integers.append(1)                        //[1]
integers.append(100)                    //[1, 100]

integers.contains(100)                    //true
integers.contains(99)                    //false

integers.remove(at: 0)                    //0번째 배열 삭제
integers.removeLast()                    //마지막 삭제
integers.removeAll()

integers.count                            //0

Array과 [Double] 은 동일한 표현. (빈 Double Array생성)

var characters: [Character] = [] // 새로운 빈 Character Array 생성

let을 사용하여 Array를 선언하면 불변 Array

let immutableArray = [1, 2, 3]

Key가 String 타입이고 Value가 Any인 빈 Dictionary 생성

var anyDictionary: Dictionary<String, Any> = [String: Any ] ()

anyDictionary["someKey"] = "value"
anyDictionary["anotherKey"] = 100

anyDictionary            //["someKey": "value", "anotherKey": 100]

anyDictionary["someKey"] = "dictionary"
anyDictionary            //["someKey": "dictionary", "anotherKey": 100]

anyDictionary.removeValue(forKey: "anotherKey")

anyDictionary["someKey"] = nil
anyDictionary            //[:]

let emptyDictionary: [String: String] = [:]
let initalizedDictionary: [String: String] = ["name": "yagom, "gender': "male"]

빈 Int Set 생성

var integerSet: Set<Int> = Set<Int>()
integerSet.insert(1)
integerSet.insert(100)
integerSet.insert(99)
integerSet.insert(99)    //안에 중복된 값이 없는걸 보장하기때문에 한번만 추가됨
integerSet                //{100, 99, 1}

integerSet.contains(1)    //true
integerSet.contains(2)    //false

integerSet.remove(100)    //100 삭제
integerSet.removeFirst()

integerSet.count

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

let union: Set<Int> = setA.union(setB)            //Set A와B의 합집합
                                                //{2, 4, 5, 6, 7, 3, 1}
let sortedUnion: [Int] = union.sorted()            // 집합을 정렬
                                                //{1, 2, 3, 4, 5, 6, 7}
let intersection: Set<Int> = setA.intersection(setB)    //교집합
                                                        //{5, 3, 4}
let subtracting: Set<Int> = setA.subtracting(setB)        //차집합
                                                        //{2, 1}
728x90

'ios > 기본문법' 카테고리의 다른 글

고차함수  (0) 2022.03.01
스위프트 기본문법 (5)  (0) 2021.07.09
스위프트 기본문법 (4)  (0) 2021.07.09
스위프트 기본문법 (3)  (0) 2021.07.09
스위프트 기본문법 (2)  (0) 2021.06.08