본문 바로가기

SWIFT22

[Swift] Chapter 10. 프로퍼티와 메서드 프로퍼티는 클래스, 구조체 또는 열거형 등에 관련된 값을 뜻한다. 메서드는 특정 타입에 관련된 함수를 뜻한다. 10.1 프로퍼티 프로퍼티는 저장 프로퍼티(Stored Properties)와 연산 프로퍼티(Computed Properties), 타입 프로퍼티(Type Properties)로 나눌 수 있다. 저장 프로퍼티는 인스턴스의 변수 또는 상수를 의미한다. 연산 프로퍼티는 값을 저장한 것이 아니라 특정 연산을 실행한 결괏값을 의미한다. 연산 프로퍼티는 클래스, 구조체, 열거형에 쓰일 수 있다. 저장 프로퍼티는 구조체와 클래스에서만 사용할 수 있다. 저장 프로퍼티와 연산 프로퍼티는 특정 타입의 인스턴스에 사용되는 것을 뜻하지만 특정 타입에 사용되는 프로퍼티도 있는데 이를 타입 프로퍼티라고 한다. 프로퍼티.. 2021. 10. 8.
[Swift] Chapter 09. 구조체와 클래스 데이터를 용도에 맞게 묶어 표현하고자 할 때 유용하다. 구조체와 클래스는 프로퍼티와 메서드를 사용하여 구조화된 데이터와 기능을 가질 수 있다. 스위프트의 구조체의 인스턴스는 값 타입이고, 클래스의 인스턴스는 참조 타입이다. 지금까지 알아본 스위프트의 데이터 타입과 열거형은 모두 값 타입이다. 스위프트는 소스파일 하나에 여러 개의 구조체와 여러 개의 클래스를 정의하고 구현할 수 있다. 또, 중첩 함수와 마찬가지로 구조체 안에 구조체, 클래스 안에 클래스 등과 같이 중첩 타입의 정의 및 선언이 가능하다. 9.1 구조체 9.1.1 구조체 정의 구조체는 struct 키워드로 정의한다. NOTE_구조체 명명법 대문자 카멜케이스를 사용하여 이름을 지어준다. 프로퍼티와 메서드는 소문자 카멜케이스를 사용하여 이름을 지.. 2021. 10. 8.
[Swift] Chapter 08. 옵셔널 옵셔널은 안전성(Safe)을 문법으로 담보하는 기능이다. 값이 '있을 수도, 없을 수도 있음'을 나타내는 표현이다. 이는 '변수나 상수 등에 꼭 값이 있다는 것을 보장할 수 없다. 즉, 변수 또는 상수의 값이 nil일 수도 있다'는 것을 의미한다. 옵셔널과 옵셔널이 아닌 값은 철저히 다른 타입으로 인식하기 때문에 컴파일할 때 바로 오류를 걸러낼 수 있다. 8.1 옵셔널 사용 옵셔널 변수 또는 상수가 아니면 nil을 할당할 수 없다. 변수 또는 상수에 값이 없을 때만 nil로 표현한다. 값이 없는 옵셔널 변수 또는 상수에 (강제로) 접근하려면 런타임 오류가 발생한다. nil은 옵셔널로 선언된 곳에만 사용될 수 있다. 옵셔널 변수 또는 상수 등은 데이터 타입 뒤에 물음표(?)를 붙여 표현해준다. /* 코드 .. 2021. 10. 8.
[Swift] Chapter 07. 함수 7.1 함수와 메서드 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수 → 메서드 모듈 전체에서 전역적으로 사용할 수 있는 함수 → 함수 즉, 함수가 위치하거나 사용되는 범위 등에 따라 호칭이 달라질 뿐 기본적으로 같다. 7.2 함수의 정의와 호출 조건문이나 반복문 같은 스위프트의 다른 문법과 달리 함수에서는 소괄호를 생략할 수 없다. 재정의(오버라이드)와 중복 정의(오버로드)를 모두 지원한다. 따라서 매개변수의 타입이 다르면 같은 이름의 함수를 여러 개 만들 수 있고, 매개변수의 개수가 달라도 같은 이름의 함수를 만들 수 있다. 7.2.1 기본적인 함수의 정의와 호출 func 키워드를 이용해서 정의한다. 반환 타입을 명시하기 전에는 → 를 사용하여 어떤 타입이 반환될 것인지 명시해준다. .. 2021. 10. 8.
[Swift] Chapter 06. 흐름 제어 6.1 조건문 6.1.1 if 구문 스위프트의 if 구문은 조건의 값이 꼭 Bool 타입이어야 한다. /* 코드 6-1. if 구문 기본 구현 */ let first: Int = 5 let second: Int = 7 if first > second { print("first > second") } else if first < second { print("first < second") } else { print("first == second") } // 결과는 "first < second"가 출력된다. 6.1.2 switch 구문 소괄호( () )의 생략 가능. 단, break 키워드 사용은 선택 사항이다. 즉, case 내부의 코드를 모두 실행하면 break 없이도 switch 구문이 종료된다. 스위프.. 2021. 10. 8.
[Swift] Chapter 05. 연산자 스위프트의 연산자는 특정한 문자로 표현한 함수라 할 수 있다. 따라서 특정 연산자의 역할을 프로그래머의 의도대로 변경할 수도 있다. 5.1 연산자의 종류 5.1.2 산술 연산자 NOTE _ 스위프트의 나머지 연산과 나누기 연산자 스위프트에서는 부동소수점 타입의 나머지 연산까지 지원한다. 기존의 프로그래밍 언어에서는 나머지 연산자가 정수 타입만 지원하는 경우가 많았는데 스위프트에서는 부동소수점 타입도 나머지 연산을 할 수 있다. let number: Double = 5.0 var result: Double = number.truncatingRemainder(dividingBy: 1.5) // 0.5 result = 12.truncatingRemainder(dividingBy: 2.5) // 2.0 나누기 .. 2021. 10. 8.