반응형
상수와 변수
상수 선언 let 이름: 타입 = 값
- 상수는 이름그대로 선언한 값 고정
변수 선언 var 이름: 타입 = 값
- 변수는 이름그대로 값 변경 가능
! 값이 명확하다면 타입은 생략할 수 있다. 그러나 나중에 할당하려고 하는 상수나 변수는 타입을 명시하여야 한다.
var name:String
let age:Int
name = "녹색하늘"
age = 20
print("나의 이름은 \(name)입니다") //나의 이름은 녹색하늘입니다
name = "하늘"
print("나의 이름은 \(name)입니다") //나의 이름은 하늘입니다
기본 데이터 타입
-
Int : 64비트 정수형
-
UInt : 64비트 양의 정수형
-
Float : 실수타입 32비트 부동소수형 : 소수점이하 6자리
-
Double : 실수타입 64비트 부동소수형 : 소수점이하 15자리
-
Character : 문자타입
-
String : 문자열 타입
//여러줄 문자열사용 가능.
//겹따옴표 세개인 줄 (처음과 끝)에서 줄바꿈을 해야 오류가 나지 않음
var manyString = """
이것은
아주긴
문자열
입니다
"""
print(manyString)
/*
이것은
아주긴
문자열
입니다
*/
- Any : swift의 모든 타입을 지칭
단, any는 float 및 double타입이 아니므로 명시적 형변환 후에 할당가능.
var val: Any = 100
val = "kim"
val = 12.125442
var fl: Float = val // error
var dou : Double = val // error
- AnyObject : 모든 클래스 타입을 지칭하는 프로토콜
단, 클래스의 인스턴스만 할당 가능
class aClass{}
var obj: AnyObject = aClass
obj = 124 //error
- nil : null과 같은 의미. 부재를 나타낸다.
컬렉션 타입
- Array : 순서가 있는 리스트 컬렉션
//Array 생성
var integers: Array = Array() //에러
var integers2: Array = [] //에러
//타입은 반드시 명시해 주어야 합니다.
var integers3: [Int] = Array()
var integers4: [Int] = [Int]
var integers5: [Int] = []
var integers6: [Int] = [Int]
//Any를 이용해 여러 자료형을 넣을 수 있습니다.
var anyArr: [Any] = [1,2,"가","나"]
//크기가 정해진 배열을 만들수도 있습니다.
var repeatArr= [Int](repeating: 0, count: 3) //[0,0,0]
//멤버 추가
var a : [1,2] //[1,2]
a.append(3) //[1,2,3]
a. += [4,5] //[1,2,3,4,5]
//멤버 접근
a[0] //1
a[0] = 0 // a = [0,2,3,4,5]
//멤버 포함여부 확인 ture/false로 반환
a.contains(100) // false
a.contains(2) //true
//멤버 수 확인
a.integers.count // 5
//멤버 삭제
a.remove(at: 0) // a = [2,3,4,5]
a.removeLast() // a = [2,3,4]
a.removeAll() // a = []
- Dictionary : 키-값의 쌍으로 이루어진 컬렉션
//Dictionary 생성
var dic: Dictionary = Dictionary() //error, 타입은 반드시 명시
var dic: Dictionary = [:] //error, 타입은 반드시 명시
var dic : Dictionary = [String: Int]()
var dic: [String: Int] = Dictionary()
var dic: [String: Int] = [String: Int]()
var dic: [String: Int] = [:]
var dic = [String: Int]()
//값 할당 (변경도 동일)
dic["apple"] = 4000
dic["banana"] = 2500
print(dic) // ["apple": 4000, "banana" = 2500]
//제거
dic.removeValue(forKey: "apple")
dic["banana"] = nil
print(dic) // [:]
- Set : 순서없이 멤버가 유일한 컬렉션
//Set 생성 (반드시 타입을 명시해 주어야 합니다)
var set1 :Set = Set<String>()
var set1 = Set<String>()
var set1 : Set<String> = []
//생성과 동시에 초기화
var set1 : Set<String> = [5,4,3]
var set1 : Set = [5,4,3]
//값 추가
set.insert(2)
print(set1) //출력시 순서와 상관없이 출력됨
set.insert(2) // Set은 중복을 허용하지 않으므로, 변화 x
//제거
set1.remove(2)
set1.reamoveAll()
//집합연산
let set1 : Set = [1,2,3,4]
let set2 : Set = [3,4,5,6]
var uSet : Set = set1.union(set2) //합집합
print(uSet) // [3, 4, 6, 5, 1, 2]
var iSet : Set = set1.intersection(set2) // 교집합
print(iSet) // [4, 3]
var symSet : Set = set1.symmetricDifference(set2) //합집합-교집합
print(symSet) // [6, 5, 1, 2]
var subSet : Set = set1.subtracting(set2) // 여집합
print(subSet) //[1, 2]
도움이 엄청나게 된 사이트들
반응형
'Language > Swift' 카테고리의 다른 글
Swift 간단한 사칙연산 (0) | 2021.03.09 |
---|---|
Swift 함수의 선언과 호출 (0) | 2021.03.09 |
Swift API 설계 지침 (0) | 2021.03.08 |
Swift mark down 활용하기 (0) | 2021.03.08 |
Swfit란 뭘까? (2) | 2021.03.07 |