일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- resample2d_cuda
- 자바
- clean architecture
- 데이터청년캠퍼스
- DataBinding Error
- Android
- 안드로이드
- utuntu
- 넥스터즈
- sending 404
- ubuntu
- IT연합동아리
- 백준
- 빅데이터청년인재
- 머신러닝
- kotiln
- 이것만보면돼
- 소켓통신
- ubuntu18.04
- cuda-10.2
- 알고리즘
- 인공지능
- 코틀린
- nvcc
- 딥러닝
- 청년인재
- flownet
- 빅데이터
- NEXTERS
- 빅데이터청년캠퍼스
- Today
- Total
보초의 코딩일기장
[swift 입문] Any, AnyObject, nil, 컬렉션타입 본문
Any - Swift 의 모든 타입을 지칭하는 키워드
AnyObject - 모든 클래스 타입을 지칭하는 프로토콜
nil - '없음'을 의미하는 키워드 , NULL 과 유사한 표현
1 2 3 4 | var someAny: Any = 100 someAny = "하이" someAny = 123.12 //어떤 타입도 수용이 가능하다. | cs |
Any는 데이터 타입 위치에 들어갈 수 있다.
모든 타입을 수용할 수 있다는 의미가 들어있다.
1 | let someDouble: Double = someAny |
하지만 Any타입에 Double형을 넣을 수는 없으므로 오류가 나타난다.
1 2 3 | class SomeClass {} var someAnyObject: AnyObject = SomeClass() | cs |
두번째로 클래스를 하나 생성 한다.
1 | someAnyObject = 123.12 | cs |
후에 클래스 변수에 Double형 변수를 넣는 것도 불가능하다.
1 | someAny=nil | cs |
Any type인 someAny 변수에 nil을 넣어보겠다.
Any는 어떤 변수도 들어갈 수 있다고 배웠다.
하지만 nil은 빈 값이므로 Any에 들어갈 수 없으므로 오류가 발생하게 된다.
컬렉션타입
Array - 순서가 있는 리스트 컬렉션
Dictionary - 키와 값의 쌍으로 이루어진 컬렉션
Set - 순서가 없고 멤버가 유일한 컬렉션
1.Array
멤버가 순서를 가진 리스트 형태의 컬렉션 타입
표현 방법이 다양하다.
1 2 | //변경이 불가능한 배열 선언 let immutableArray = [1,2,3] | cs |
integers 라는 Array에 정수를 추가해줄 때 쓰는 표현
1 2 | integers.append(1)// [1] integers.append(100)// [1,100] | cs |
integers 라는 Array에 해당 정수가 존재유무를 판단할때 쓰는 표현
값이 들어있다면 true, 들어있지 않다면 false로 출력된다.
1 2 | integers.contains(100) //true integers.contains(99) //false | cs |
1. index에 해당하는 값을 없애고 싶을 때 쓰는 표현
2. 맨 마지막 요소를 없애고 싶을 때 쓰는 표현
3. 모든 요소를 없애고 싶을 때 쓰는 표현
4. 몇개의 요소가 들어 있는지 알고싶을 때 쓰는 표현
5. 0번째 index에 접근하고자 할때 쓰는 표현
1 2 3 4 5 | integers.remove(at:0) //1 integers.removeLast() //2 integers.removeAll() //3 integers.count //4 integers[0] //5 | cs |
2.Dictionary
키와 쌍으로 이루어진 컬렉션 타입
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //key가 string 타입이고 value가 and인 빈 Dictionary 생성 //순서 상관없이 키와 값의 쌍으로 이루어져 있다. var anyDictionary: Dictionary<String, Any> = [String:Any]() anyDictionary["someKey"] = "value" anyDictionary["anotherKey"] = 100 anyDictionary //출력: ["someKey": "value", "anotherKey": 100] //키와 값의 쌍 //불변의 Dictionary값을 선언해주어으므로 값을 변경하지 못한다. let emptyDictionary: [String: String] = [:] let initalizedDictionary: [String: String] = ["name": "yagom", "gender": "male"] // "name"이라는 키에 해당하는 값이 없을 수 있으므로 String 타입의 값이 나올 것이라는 보장이 없다. //그러므로 컴파일 오류가 발생한다. let someValue: String = initalizedDictionary["name"] | cs |
3.Set
중복되지 않는 멤버가 순서없이 존재하는 컬렉션
Array, Dictionary와는 다르게 축약형이 존재하지 않는다.
1 | var integerSet: Set<Int> = Set<Int>() | cs |
1 2 3 4 5 6 7 | integerSet.insert(1) integerSet.insert(99) integerSet.insert(99) integerSet.insert(99) integerSet.insert(100) print(integerSet) // {100, 99, 1} | cs |
insert시 해당 값을 integerSet 에 넣는다.
print시 중복되는 값인 99는 한 번만 들어가서 100,99,1 이 들어가게 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // 멤버의 유일성이 보장되기 때문에 집합 연산에 활용하면 유용하다. 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] | cs |
'낙서장 > edwith : swift 입문' 카테고리의 다른 글
[Swift 입문] 구조체, 클래스 (0) | 2018.07.02 |
---|---|
[Swift 입문] 옵셔널 (0) | 2018.07.02 |
[swift 입문] 함수 기본, 조건문 (0) | 2018.06.27 |
[swift 입문] 상수와 변수, 데이터타입 (0) | 2018.06.27 |
[swift 입문] 명명법 / 콘솔로그 / 문자열 보간법 (0) | 2018.06.27 |