[Swift] 기초개념

13456 단어 swiftiOSiOS

기초개념

이름짓기

  • 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의 차집합

좋은 웹페이지 즐겨찾기