본문 바로가기

iOS/SWIFT30

[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.
[Swift] Chapter 04. 데이터 타입 고급 4.1 데이터 타입 안심 스위프트는 타입에 굉장히 민감하고 엄격하다. 서로 다른 타입끼리의 데이터 교환은 꼭 타입 캐스팅(Type Casting)을 거쳐야 한다. 스위프트에서 값 타입의 데이터 교환은 엄밀히 말하면 타입캐스팅이 아닌 새로운 인스턴스를 생성하여 할당하는 것이다. 4.1.1 데이터 타입 안심이란 스위프트는 데이터 타입을 안심하고 사용할 수 있는(Type-Safe) 언어이다. 이 말은 그만큼 실수를 줄일 수 있다는 의미이다. 예를 들어 Int 타입 변수에 할당 하려는 값이 Character 타입이라면 컴파일 오류가 발생한다. 이런 오류는 프로그래밍 도중에 눈치채기 어려워 컴파일러가 알려주지 않으면 나중에 오류를 찾아내기 쉽지 않다. 그렇지만 스위프트는 컴파일 오류로 알려주므로 서로 다른 타입의.. 2021. 10. 8.
[Swift] Chapter 03. 데이터 타입 기본 데이터 타입은 프로그램 내에서 다뤄지는 데이터의 종류를 뜻한다. 스위프트의 기본 데이터 타입은 구조체를 타입의 기반으로 삼아 스위프트의 다양한 기능을 두루 사용하여 구현되어 있다. 스위프트의 모든 데이터 타입 이름은 첫 글자가 대문자로 시작하는 대문자 카멜케이스를 사용한다. 3.1 Int와 UInt 정수 타입이다. Int는 +, - 부호를 포함한 정수를 뜻하며 이 중 -부호를 포함하지 않는 0을 포함한 양의 정수는 UInt로 표현한다. 최댓값과 최솟값은 각각 max와 min 프로퍼티로 알아볼 수 있다. 각각 8비트, 16비트, 32비트, 64비트의 형태가 있다. Int8, Int16, ...... UInt8, UInt16, ....등으로 저장할 수 있는 데이터의 크기에 따라 타입이 분리되어 있다. 시스템.. 2021. 10. 8.
[Swift] Chapter 02. 스위프트 처음 시작하기 2.1 기본 명명 규칙 변수, 상수, 함수, 메서드, 타입 등의 이름은 유니코드에서 지원하는 어떤 문자(한글, 한자, 영문, 숫자, 이모티콘 등등)라도 사용할 수 있다. 다만 다음과 같은 예외 경우는 사용할 수 없다. 스위프트에서 미리 정한 예약어 또는 키워드 해당 코드 범위 내에서 미리 사용되는 기존 이름과 동일한 이름 연산자로 사용될 수 있는 기호(+, -, *, /) 숫자로 시작하는 이름 공백이 포함된 이름 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스를 사용한다. 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 첫 글자를 대문자로 사용하는 대문자 카멜케이스를 사용한다. 대소문자를 구별한다. 2.2 콘솔 로그 print() 또는 dump(.. 2021. 10. 8.
[Swift] Chapter 01. 스위프트 1.1 스위프트의 언어적 특성 Safe, Fast, Expressive (1) 안전성(Safe) 스위프트는 안전한 프로그래밍을 지향한다. 프로그래밍하는 중에 프로그래머가 저지를 수 있는 실수를 엄격한 문법을 적용해 미연에 방지하고자 노력함. 버그를 수정하거나 실수를 찾아내는 시간을 절약할 수 있다. 옵셔널, guard 구문, 오류처리, 강력한 타입 통제 등을 활용 (2) 신속성(Fast) 아직 미흡한 부분도 있지만 스위프트는 C 언어 수준과 동등한 성능을 일정한 수준으로 유지하는 데 초점을 맞춰 개발되었다. 실행 속도의 최적화뿐만 아니라 컴파일러를 지속적으로 개량해 더 빠른 컴파일 성능을 구현해 나가고 있다. (3) 더 나은 표현성(Expressive) 스위프트는 좀 더 사용하기 편하고 보기 좋은 문법을.. 2021. 10. 8.