일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트 웹 소켓
- CI
- 아이패드다이어리
- 리눅스
- 42seoul
- 스프링
- libasm
- swift
- Xcode
- 다이어리
- Spring
- JPA
- javascript
- IOS
- 스프링부트
- sql
- 인공지능
- springboot
- AI
- DBMS
- jenkins
- 데이터베이스
- 티스토리챌린지
- CD
- 오블완
- 소켓
- 오라클
- 네트워크
- MySQL
- 프로그래밍언어론
- Today
- Total
Hi yoahn 개발블로그
[Swift] #1 Swift 기초 문법 1 본문
1) Swift 소개
- 스위프트는 문법 표현의 다양성이 높은 언어
2) 명명법 / 콘솔로그 / 문자열 보간법
- Lower Camel Case : 함수, 메소드, 변수, 상수
- Upper Camel Case : 타입(클래스, 구조체, enum, extension)
3) 콘솔로그
- print -> 주어진 문자열을 출력
- dump -> 클래스의 인스턴스를 콘솔에 찍거나, 딕셔너리를 더 자세히 찍
4) 문자열 보간법
- 문자열 내에 변수 또는 상수의 값을 표현하기 위해 사용
let age: Int = 10
“안녕하세요! 저는 \\(age)살입니다”
4) 상수, 변수 선언
- 상수
- let 이름: 타입 = 값
- 차후에 값 변경 불가
- 상수 선언 후 할당 한번만 가능
- 변수
-
var 이름: 타입 = 값
-
차후에 값 변경 가능
-
변수 / 상수는 초기화 한 이후 사용 가능
-
값의 타입이 명확하다면 타입 생략 가능 (선언과 초기화 동시)
-
선언 뒤 나중에 값을 할당하려는 상수나 변수는 반드시 타입 명시
5) 기본 데이터 타입
- Bool
var someBool: Bool = true someBool = 0 or 1 => Error
Swift에서는 Bool 타입에 Int 타입 넣는 것을 허용하지 않음
- Int : 64비트 정수형
var someInt: Int = 200
Int 가 아닌 다른 타입을 넣으면 컴파일 오류
- UInt : 64비트 양의 정수형
var someUInt: UInt = 100
- someUInt = -1
- someUint = someInt => 컴파일 오류
- Float : 실수 타입, 32비트 부동소수형
var someFloat: Float = 3.14 someFloat = 3
- Double : 실수 타입, 64비트 부동소수형
var someDouble: Double = 3.14 someDouble = 3
- someDouble = someFloat => 컴파일 오류
- Character, String
- Character : 문자 타입. 유니코드 사용. 큰따옴표("") 사용.
var someChar: Character = "#"
-> 문자열 여러개가 들어가면 컴파일 에러
- String : 문자열 타입. 유니코드 사용. 큰따옴표("") 사용.
var someString: String = "하하하 :)" someString = someString + "호호호"
- someString = somechar -> 컴파일 에러
다른 데이터 타입과의 자료 교환은 암시적으로 절대 불가능
let floatingPoint = 12.34 -> type(of: floatingPoint) 로 데이터 타입을 알 수 있다.
6) Any, AnyObject, nil
- Any Swift 의 모든 타입을 지칭하는 키워드
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12
// Any 타입에 Double 자료를 넣어두었더라도 Any 타입 변수를 Double 타입 변수에 할당할 수 없다
// 명시적으로 타입을 변환해야 한다
let someDouble: Double = someAny
// Any 타입이기 때문에 어떤 타입이든 들어올 수 있지만, **빈 값 someAny = nil
// compile error someAnyObject = nil
// compile error
-
AnyObject 모든 클래스 타입을 지칭하는 프로토콜 클래스의 인스턴스만 수용 가능하기 때문에 클래스의 인스턴스가 아니면 할당할 수 없다.
-
nil ‘없음'을 의미하는 키워드
7) 컬렉션 타입
여러 값들을 묶어서 하나의 변수로 표현할 수 있게 만들어 줌
- Array: 순서가 있는 리스트 컬렉션
- Dictionary : [‘키’ : ‘값’] 쌍으로 이루어진 컬렉션
- Set : 순서가 없고, 멤버가 유일한 컬렉션
/* Array */
var integers: Array<int> = Array<Int>()
// = [int]()
// = []
// : [Int] = Array<Int>()
// : [Int] = [Int]()
// : [int] = []
// var integers = [int]()
// method
integers.append(1) // 맨 뒤에 요소 추가
integers.contains(10) // 이 요소를 가지고 있는지 체크
integers.remove(at: [index])
integers.removeLast()
integers.removeAll()
integers.count
// Array 삭제 후 Array에 인덱스 접근 불가
/* Dictionary */
var anyDictionary: Dictionary<String, Any> = [String: Any]()
anyDictionary["someKey"] = "value"
anyDictionary["anotherKey"] = 100
// 키에 해당하는 값을 변경
anyDictionary["someKey"] = "dictionary"
// 키에 해당하는 값 제거 - 2가지 방법
anyDictionary.removeValue(forKey: "anotherKey")
anyDictionary["someKey"] = nil
// 빈 딕셔너리 표현
let emptyDictionary: [String: String] = [:]
let initializedDictionary: [String: String] = ["name": "yagom", "gender": "male"]
// emptyDictionary["key"] = "value" -> compile 에러, 값 변경 불가
// let someValue: String = initializedDictionary["name"]
=> 에러, 딕셔너리 키에 해당하는 값이 있을수도, 없을수도 있기 때문(불확실성 때문에)
/* Set */
var integerSet: Set<Int> = Set<Int>()
integerSet.insert(1)
integerSet.insert(10)
//integerSet.insert(1) => 더이상 추가되지 않음. 이미 있기 때문에
integerSet.contains(1)
integerSet.remove(100)
integerSet.removeFirst()
integerSet.count
// method
union, sorted, intersection, subtracting
'프로그래밍 언어 > swift' 카테고리의 다른 글
[Swift] #4 다양한 표현 및 확장 2 (클로저/프로퍼티) (0) | 2021.01.20 |
---|---|
[Swift] #3 다양한 표현 및 확장1 (구조체 / 클래스 / 열거형) (0) | 2021.01.20 |
[Swift] #2 Swift 기초 문법 2 (0) | 2021.01.19 |
[Swift] #2 iOS 앱의 구조와 코코아 터치 프레임워크 (0) | 2020.12.16 |
[Swift] #1 스위프트 코드 기본 설명 (0) | 2020.12.15 |