[Swift] 기초개념
기초개념
이름짓기
- Lower Camel Case : function, method, variable, constant
- Upper Camel Case : type(class, struct, enum, extension)
- 대소문자 구분
콘솔로그
- print : 단순 문자열 출력
- dump : 인스턴스 자세한 설명(description property)
문자열 보간법
출력중 문자열에 변수를 출력
- String Interpolation
\(var)
상수, 변수 선언
함수형 프로그래밍, 불변객체를 중요히 여김
⇒ 상수 표현이 많이 나타남
let
상수 선언 키워드 : 차후에 변경이 불가능한 상수
→ let name : type = 값
→ let name = 값
(값의 타입이 명확할 때)
var
변수 선언 키워드 : 차후에 변경이 가능한 변수
→ var name : type = 값
→ var name = 값
(값의 타입이 명확할 때)
-
나중에 상수, 변수를 할당하고자 하면 상수나 변수에 타입을 꼭 명시해줘야 함
let sum: Int let inputA: Int = 100 let inputB: Int = 200 // 선언 후 할당 sum = inputA + inputB
데이터 타입
기본데이터 타입
: 다른 데이터 타입으로 변환이 어려움
Bool
: true 또는 false 만을 으로 가지는 타입
→ 𝟶, 1 을 사용해서 true&false 표현 불가능
Int, UInt
- Int : 64비트 정수형 타입
- Uint : 양의 정수 타입
Float, Double
- Float: 32비트 실수 타입
- Double: 64비트 실수 타입 → float 타입을 double로 할당 불가능
Character, String
-
Character : 문자타입, 유니코드 사용, 큰따옴표 사용
-
String: 문자열 타입, 유니코드 사용, 큰따옴표 사용
→ 여러줄 문자열은 큰따옴표 세개 사용
Any, AnyObject, nil
Any
: Swift의 모든 타입을 지칭하는 키워드
→ 다른 타입으로 선언된 데이터에는 Any를 할당 할 수 없음, 명시적으로 타입을 변환해 주어야 함
AnyObject
: 모든 클래스 타입을 지칭하는 프로토콜
→ AnyObject는 클래스의 인스턴스만 수용 가능, 클래스의 인스턴스가 아니면 할당이 불가능
nil
: 없음을 의미하는 키워드
컬렉션 타입
Array
: 순서가 있는 리스트 컬렉션
빈 Int Array 생성
var integers: Array<Int> = Array<Int>()
integers.append(1)
integers.append(100)
integers.contains(100)
integers.contains(99)
integers.remove(at: 0)
integers.remvoveLast()
integers.removeAll()
integers.count
- append : 요소 추가
- contains : array에 값이 포함되었는지 확인 후 true, false Return
- remove(at: index) : index 값 제거
- removeLast : 마지막 요소 제거
- removeAll : 요소 전체 제거
- count : 요소 개수 확인
var doubles: **Array<Double>** = **[Double]**()
var characters: **[Character]** = **[]**
Dictionary
: 키와 값의 쌍으로 이루어진 컬렉션
var anyDictionary: Dictionary = [String: Any]()
// 같은 표현
var anyDictionary: Dictionary = Dictionary()
var anyDictionary: Dictionary = [:]
var anyDictionary: [String: Any] = Dictionary()
var anyDictionary: [String: Any] = [String: Any]()
var anyDictionary: [String: Any] = [:]
var Dictionary = [String: Any]()
// key에 값 할당 (value type이 Any이기 때문에 어떤 type이던 가능)
anyDictionary["someKey"] = "value"
// key에 값 변경하여 할당
anyDictionary["someKey"] = "dictionary"
// key에 해당하는 값 제거
anyDictionary: ["someKey"] = nil
anyDictionary.removeValue(forKey: "someKey")
// 빈 dict 선언
let emtpyDictionary: [String: String] = [:]
- removeValue(forKey: key) : key에 해당하는 요소값 제거
Set
: 순서가 없고, 멤버가 유일한 컬렉션 (중복안됨)
// 따로 축약은 없음
var integerSet: Set<Int> = set<Int>()
integerSet.insert(100)
integerSet.insert(99)
integerSet.remove(100)
integerSet.removeFrist()
integerSet.count
- insert : 요소 추가
집합 연산 가능
let union: Set<Int> = setA.union(setB)
let sortedUnion: [Int] = union.sorted()
let intersection: Set<Int> = setA.intersection(setB)
let subtracting: Set<Int> = setA.subtracting(setB)
- A.union(B): A와 B의 합집합
- sorted : 정렬
- A.intersection(B) : A와 B의 교집합
- A.subtracting(B) : A와 B의 차집합
Author And Source
이 문제에 관하여([Swift] 기초개념), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yewon/Swift-기초개념저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)