2020/08

    [ETC_009] 구조체와 클래스

    구조체와 클래스구조체(struct)와 클래스(class)는 프로퍼티와 메서드를 사용하여 구조화된 데이터와 기능을 가질 수 있다. 즉 하나의 새로운 사용자 정의 데이터 타입을 만들어 주는 것이다.구조체의 인스턴스는 값 타입이며, 클래스의 인스턴스는 참조 타입이라는게 가장 큰 차이점이다.구조체구조체는 아래와 같이 정의할 수 있다.struct 구조체이름 { 프로퍼티와 메서드들 } 위의 구조처럼 구성을 하나 이해를 위해서는 실제 사용 사례를 보자struct Student { var name : String var age : Int } 이름과 나이라는 저장 프로퍼티를 가지고 있는 구조체를 만들어보았다. 이후 이를 기반으로 인스턴스를 생성하고 초기화할 수 있다.// Student(name:,age:)로 자동 생성된..

    [Swifft] GCD란 무엇인가?

    GCDGCD(Grand Central Dispatch)는 해야할 어떤 일들을 만들어서 넘기면(코드 블록) 시스템에서 스레드를 할당하고 안전하게 수행/처리해준다.queue를 이용해서 관리를 하게 되는데, queue란 하나의 자료 구조이다. First-in First-out만 알아두면 되는데, queue에 먼저 들어온 0번 테스크를 밖으로 내보내고 그 다음 번을 내보내는 자료구조를 말하는 것이다.GCD + DispatchQueue의 형태로 이용을 하는데, 이 DispatchQueue에는 세 가지 타입이 있다. 1. Main Queue 메인 스레드에서 작동하는 queue이다.DispatchQueue.main.async { // Tasks } 형태로 사용이 된다.// - Main QueueDispatchQueu..

    [ETC_008] 옵셔널

    옵셔널옵셔널은 스위프트의 특징 중 하나인 안정성을 담보하는 기법이다.옵셔널은 말 그대로 “있을 수도?,“없을 수도?”를 나타내는 표현이다. 즉 변수(var) 또는 상수(let)의 값이 nil(NULL)일 수 있다는 것이다. (+ 옵셔널 변수/상수가 아니면 nil을 할당할 수 없다.) 즉, 변수 혹은 상수가 nil일 수 있으니 사용에 주의하라는 의미를 담고 있는 것이다.nil을 할당하기 위해서는 “?”를 데이터 타입 뒤에 붙여줘야 한다.var printName: String = "cha"printName = nil// nil cannot be assigned to type "String"위 코드처럼 “?”를 붙이지 않으면 오류가 발생하게 된다.var printName: String? = "cha"print..

    [ETC_007] 함수

    함수스위프트에서 함수는 일급 객체이다. 여기서 일급 객체란, 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다.(feat. wiki)함수와 메서드함수와 메서드는 기본적으로 같다. 다만 상황에 따라 다르게 불리는 것인데, 모듈 전체에서 전역적으로 사용이 가능하다면 “함수”, 구조체,클래스,열거형 등 특정 타입에 연관되어 사용하는 함수를 “메서드”라고 부른다.조건문과 반복문에서와 달리 함수에서는 소괄호(())를 생략할 수 없다!함수를 정의하는 키워드는 func이다. 파이썬에서는 funtion이었는데 조금 더 짧다. 함수 이름을 지정 후, 매개변수는 소괄호 안에 들어가게 된다. 반환타입..

    [ETC_006] 흐름 제어

    흐름 제어_ 조건문과 반복문조건문if, switch, guard문이 대표적이지만, if와 switch 먼저 볼 것이다.if 구문다른 언어와 달리 스위프트의 if 구문은 조건의 값이 꼭 Bool 타입이어야 합니다!let firstValue: Int = 1let secondValue: Int = 10 if firstValue 타 언어의 if문과 마찬가지로 else if는 여러 개이어도 상관 없으며, else는 생략가능합니다. 조건수식을 ()으로 묶어주는 것은 선택사항입니다!switch 구문switch 또한 ()를 생략할 수 있으며, break 기입은 선택입니다.기본적인 switch 구문은 아래와 같습니다.let 입력값: Int = 1let 비교값1: Int = 5let 비교값2 = 1...3 switch 입..

    [ETC_005] 연산자

    연산자스위프트에서의 연산자는 여러가지로 분류할 수 있다.분류설명예단항 연산자연산 대상이 하나인 연산자!A이항 연산자연산 대상이 두 개인 연산자A+B삼항 연산자연산 대상이 세 개인 연산자A? B:C전위 연산자(prefix)연산자가 피연산자 앞에 위치할 때!A중위 연산자(infix)연산자가 피연산자 중간에 위치할 때A+B후위 연산자(postfix)연산자가 피연산자 뒤에 위치할 때A!이외에도 스위프트에는 여러가지 연산자의 종류가 있다.할당 연산자 : A=B 처럼 A에 B의 값을 할당하는 형태 산술 연산자덧셈 : A + B뺄셈 : A - B곱셈 : A * B나눗셈 : A / B나머지 : A % B 비교 연산자같다 : A == B크거나 같다 : A >= B작거나 같다 : A B작다 : A < B같지 않다 : A ..