일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Identity
- ios login
- xml delegate
- swift
- lazy 위험성
- Lazy
- lifecycle
- schemes
- ios
- git branch strategy
- 보라색오류
- Your app is missing support for the following URL schemes: your_ios_client_id
- 적절한 사용방법
- consuming a restful web service
- Xcode
- TabBarItems
- frame이해
- lazy 사용
- Demystify SwiftUI
- Lifetime of SwiftUI
- spring guide
- Explict Identity
- bounds이해
- Spring
- WWDC21
- Quick Help
- Structural Identity
- view
- developer
- native개발
- Today
- Total
Dev_Dylan
Swift Basic _ Data Type (2) 본문
🤟CHAPTER 4 데이터 타입 고급
swift는 데이터 타입을 안심하고 사용할 수 있다.
...
또한
var name = “names”
String이라는 타입을 결정해준다.
typealias 를 사용해 타입의 별칭을 정할 수 있다
typealias isInt = Int
var age : isInt = 8
👉Tuple 튜플
Tuple : 지정된 데이터의 묶음
var person: (String, String, Int) = ("IOS", "Study", 100)
//인덱스를 통해 값을 빼 낼수 있다.
print(person.0) // IOS
print(person.2) // 100
//혹은
var people: (name: String, job : String ,age: Int) = ("Kane" , "Programmer", 25)
print(people.job) // Programmer
print(people.1) // Programmer
👉👉컬랙션형
- 배열
- 딕셔너리
- 세트
👉배열 Array
Property : isEmpty, count, first, last
Method : index(of:), append(:) , insert( : at:), remove(_ :)...
배열의 선언과 생성
var names: Array<String> = ["David", "chulsoo", "youngsu"]
var names: [String] = ["David", "chulsoo", "youngsu"]
//위의 두표현은 같은표현이다, [String]은 Array<String> 축약
//빈배열생성
var emptyArray : [Any] = [Any]()
var emptyArray : [Any] = Array<Any>()
👉딕셔너리 Dictionary
요소들의 순서 없이 키와 값의 쌍으로 구성되는 컬렉션 타입.
var numberForName : Dictionary<String, Int> = Dictionary<String, Int>()
var numberForName : [String : Int] = [String : Int]()
//키와 타입을 정확하게 명시했다면, 아래와 같이 선언 가능
var numberForName : [String : Int] = [:]
var numberForName : [String : Int] = ["one": 1, "two" : 2 , "three" : 4] //초기값사용하여 선언가능
numberForName : ["three"] = 4 // 키 를 이용해 값 변경가능
numberForName["ten"] = 10 // 키-값 추가 가능
numberForName.removeValue(forKey: "three") // 값 삭제 가능
print(numberForName.removeValue(forKey : "three") // 키에 해당하는 값이 없으면 기본적으로 0이 반환된다.
print(numberForName["three", default : 0]
👉세트 Set
:같은 타입의 데이터를 순서 없이 하나의 묶음으로 저장하는 형태의 컬렉션 타입
세트 내 값은 모두 유일한 값, 중복된값이 존재하지 않는다.
var names : Set<String> = Set<String>()
var names : Set<String> = []
//빈 세트 생성
var names : Set<String> = ["one", "two", "three", "one"]
print(names.count)//3 one이라는 요소가 중복되었기 때문에.. 3을 반환한다.
Set는 Array와 같이 [대괄호] 를 사용하기 때문에 타입 추론을 사용한다면 컴파일러는 Array로 타입 지정한다.
insert(_:) 요소를 추가하는 메서드
remove(_:) 요소를 삭제하는 메서드
집합 연산 가능!
교집합 : intersection
여집합의 합(배타적 논리합) : symmetricDifference
합집합 : union
차집합 : subtracting
let groupA : Set<Int> = [2, 3, 5, 7, 9]
let groupB : Set<Int> = [7, 9, 19, 29, 30]
let subtractSet : Set<Int> = groupA.subtracting(groupB)
//2,3,5
👉열거형
열거형은 항목들을 묶어서 표현할 수 있다.
배열이나 딕셔너리 타입과는 다르게 정해진 항목 값 외에는 추가/수정이 불가능하다.
열거형을 사용하는 경우
- 제한된 선택지를 주고 싶을 때
- 예상된 입력 값이 한전되어 있을 때
- 정해진 값 외에는 입력받고 싶지 않을 때
👊enum
선언:
enum 이름 {
case 값
}
enum School {
case primary
case elementary
case middle
case high
case college
case university
case graduate
}
//혹은 한 줄로도 생성 가능하다
enum School {
case primary, elementary, middle, high, college, university, graduate
}
var highestEducationLevel : School = School.university
var highestEducationLevel : School = .university
// 같은 표현
highestEducationLevel = .graduate // 값 변경 가능
👊원시값 RawValue
열거형의 각 항목은 자체로도 하나의 값이지만 원시값을 가질 수 있다.
enum School {
case primary = "유치원"
case elementary = "초등학교"
case middle = "중학교"
case high = "고등학교"
case college = "대학"
case university = "대학교"
case graduate = "대학원"
}
//혹은 한 줄로도 생성 가능하다
enum School {
case primary, elementary, middle, high, college, university, graduate
}
var highestEducationLevel : School = School.university
var highestEducationLevel : School = .university
// 같은 표현
highestEducationLevel = .graduate // 값 변경 가능
👊항목순회
열거형의 모든 케이스를 알아야 할 때가 있다. 이때 CaseIterable 프로토콜을 채택한 후 allCases 프로퍼티를 통해 모든 케이스 컬렉션을 생성해준다...
'iOS > iOS_Swift' 카테고리의 다른 글
[iOS] XML Parser, XML Parsing 하기 (0) | 2024.04.28 |
---|---|
[iOS] Lazy 키워드를 적절하게 사용하는 방법 (0) | 2024.01.13 |
[iOS] Frame, Bounds 이해하기 (0) | 2023.12.31 |
[iOS] MVC 요약 (1) | 2023.12.08 |
Swift Basic _ Data Type (1) (0) | 2022.01.28 |