GGURUPiOS
Swift 공식 문서 정리 - (1) The Basics 본문
The Basics
The Basics 기본 사항
상수 및 변수 선언
상수(let) 값은 변경 불가
변수(var)는 다른값으로 변경 가능
let maximumNubmerOfLoginAttempts = 10
var currentLoginAttempt = 0
var x = 0.0, y = 0.0, z = 0.0 // 처럼 한 줄에 쉼표로 선언 가능함.
타입 선언
상수 및 변수를 선언 할 때 콜론을 이용하여 타입 선언을 할 수 있음 ( 타입을 미리 지정? 하는 느낌 )
var message: String // : String 으로 String 값이 저장될 수 있음을 선언
message = "Hi" // 이후에 String 값 할당
var red, green, blue: Double // 처럼 역시 한줄에 쉼표로 선언 가능함
/* 공식문서
타입 선언을 작성하는 경우는 드뭄 (자동으로 타입 추론을 해주기 때문에)
그러나, 경험상 Array의 경우 타입 선언을 해줘야 하는 경우가 많았음 (에러 뱉음)
ex) var intArray: [Int] = [] / ~~var intArray = [] 실패 */~~
상수 및 변수 명명
거의 모든 문자를 변수나 상수명 으로 지정 가능
Swift 키워드(where 같은 키워드) 와 같은 이름을 사용할 경우 백틱``` 으로 묶어서 사용 가능하지만 되도록 지양하자
상수 및 변수 출력
print문을 이용해 콘솔 창에 출력 할 수 있음
\() 을 사용해서 문자열 안에 상수, 변수 값 출력 가능
var name = "Ggurup"
print(name) // Ggurup 출력
print("My name is \\(name)") // My name is Ggurup 출력
주석
C언어의 주석과 매우 흡사함
한줄 : //
여러줄 /* */
세미콜론
Swift는 세미콜론이 필요 없지만, 한 줄에 여러개의 코드 작성 시 사용가능
let name = "Ggurup"; print(name) // "Ggurup 출력"
정수
대부분의 경우 특정 크기의 정수 선택 필요 X
부동 소수점
Double은 최소 15자리의 정밀도, Float는 6자리
코드에 따라 다르겠지만 Double이 선호됨
타입 안전성과 타입 추론
let meaningOfLife = 42 // Int로 추론됨
let pi = 3.14159 // Double로 추론됨 (부동 소수점 숫자는 항상)
let anotherPi = 3 + 0.14159 // Double로 추론됨
정수 및 부동 소수점 변환
let three = 3 // Int
let pointOneFourOneFiveNine = 0.14159 // Double
let pi = Double(three) + pointOneFourOneFiveNine // three(Int)를 Double(three)를 통해 Double로 변환
// 변환이 없으면 에러.
let integerPi = Int(pi) // 3 출력
// 부동 소수점 값은 Int로 변환 시 항상 잘리게 됨
typealias
이미 존재하는 유형의 대체 이름 정의 ( 별칭 느낌 )
typealias AudioSample = UInt16
var maxAmplitudeFound = AudioSample.min
bool
let yes = true // true
let no = false // false
// bool 은 true와 false두가지 값 존재, 조건문에서 유용
tuple 튜플
let http404Error = (404, "Not Found") // 타입추론으로 (Int, String)
let (statusCode, statusMessage) = http404Error // 튜플을 상수 또는 변수로 분해 해서 접근 가능함
print(statusCode) // 404 출력
print(statusMessage) // Not Found 출력
// 변수나 상수를 사용 안할 경우, 밑줄로 무시 가능
let (statusCode, _) = http404Error // 위와같이 사용가능
/* 공식문서에서
튜플은 함수의 반환 값으로 유용함, 위와 같이 페이지 검색 성공 실패 여부를 가져올 수 있음
단일 값보다 유용한 정보를 제공하기 때문에 유용함
그러나 단순 값의 반환으로 유용한 것이지 복잡한 데이터 구조에는 맞지 않음.
클래스Class나 구조체Struct를 이용해 모델링 하는 것이 맞음.
*/
옵션
옵션은 값이 없을 수 있는 상황에 사용된다. 값이 있거나 없거나 두가지 상황
let stringNumber = "123" // String
let convertedNumber = Int(stringNumber) // String "123"을 Int로 변환, 실패할 수 있으므로 convertedNumbe 의 타입은 Int? 임.
Nil
다른 언어에서의 null과 같은 의미라고 보면 될것 같다.
var serverCode: Int? = 404 // 위와 같이 옵셔널로 선언 가능
serverCode = nil // 위와 같이 nil 도 할당 가능
If 문 및 강제 언래핑
var name: String? = nil
if name != nil {
print("값이 있음")
}
// !를 이용해 강제 언래핑 가능 ( 값이 있다고 확신하는 경우, !를 사용했는데 값이 없으면 런타임 에러)
if name != nil {
print("이름은 \\(name!)입니다") // if 문에서 name 에 값이 있다고 걸러졌기 때문에 사용
}
이외의 옵셔널 체이닝 부분은 따로 밑에서 또 다루기 때문에, 여기까지만 하고 넘어가겠다.
오류처리
오류처리에 관한 부분도 나중에 다루기 때문에 여기까지
대부분 자세하게 들어가기 전에 기본적으로 알아야 할 항목을 나열한 듯 함
'Swift > 공식문서 정리 ( 문법 )' 카테고리의 다른 글
Swift 공식 문서 정리 - (5) Control Flow (0) | 2023.04.19 |
---|---|
Swift 공식 문서 정리 - (4) Collection Types (0) | 2023.04.19 |
Swift 공식 문서 정리 - (3) Strings and Characters (0) | 2023.04.19 |
Swift 공식 문서 정리 - (2) Basic Operators (기본 연산자) (1) | 2023.04.18 |
Swift 공식 문서 정리 - About Swift (0) | 2023.04.18 |