참과 거짓을 표현하고 저장하는 방법
소문자로 작성
let ishappy: Bool //상수를 Bool로 고정해준 것
//가독성을 위해 보통 이름에 has나 is 접두어로 붙여준다
let happy: Bool = true //or false 만 올 수 있다
//Boolean 값을 가진 기본 제공 코드
let str = "" //빈 문자열 선언
str.isEmpty //is 보고 isEmpty의 자료형이 Bool Type인 것 유추 가능
문자열?
“” 사이에 포함된 문자 집합
//example
"Have a nice day"
"123" //숫자로 구성된 문자열
"1" //문자의 수가 하나인 문자열
let str = "1" //문자열을 상수에 저장 //String타입
type(of: str) //타입 확인 방법
//문자열로 저장됨
문자?
“” 사이에 포함된 하나의 문자
하나의 문자를 문자 타입으로 지정하고 싶다면
타입을 반드시 직접 지정해야 한다.
let ch: Character = "1" //Character타입으로 선언
type(of: ch)
//문자로 저장됨
let doubleCh: Character = "AA"
//error: '문자'타입으로 선언했기 때문에 2개 이상의 문자 저장할 수 없음
//문자가 2개 이상이면 무조건 문자열! String 타입에만 저장 가능
//1
let emptyCh: Character = ""
//2
let emptyCh: Character = " "
// 1(error), 2(O)
//error: Character Type에 빈 문자 저장하려면 반드시 "공백" 필요
형식 추론
변수나 상수처럼 타입을 명시적으로 선언하지 않으면
저장하는 값에 따라서 타입이 결정된다
//example
let num = 123
//정수는 Integer 타입으로 추론
//why? Intrk 정수를 가장 빠르게 처리하는 타입이기 때문에
let temp = 11.2
//실수는 Double 타입으로 추론
let str = "Swift"
//문자열은 String 타입으로 추론
let a = true
let b = false
//참,거짓은 Boolean 타입으로 추론
let value //error
/*
컴파일러가 메모리 공간을 만들기 위해서는
메모리 공간의 크기를 알아야 하고
매모리 공간의 크기를 정하기 위해서는 "타입"을 알아야 한다
타입이 지정되어 있지 않으면 Type Inference 형식 추론을 하는데
값이 없으면 추론을 할 수 없다
따라서 상수나 변수를 선언할 때는
1.타입을 지정
2.값을 저장
둘 중 하나를 반드시 해주어야 한다!
*/
타입을 명시적으로 선언하는 방법
코드가 간단하면 명시하지 않아도 추론을 잘 하지만
코드가 복잡해지면 추론이 어려울 수 있다
이런 경우엔 타입을 명시적으로 사용하자!
let name: Type = value
var name: Type = value
//핵심은 "Type"
//작성 방법 <변수/상수> <이름> : <타입이름> = <값>
//example
let num: Int = 123
let value: Double
value = 12.3
//타입 부분과 저장 부분 분리해서 작성 가능
연산자 Operator: 연산에 사용하는 문자
a + b
→ + 는 연산자, a/b는 피연산자
피연산자의 수
-Unary Operator 단항 연산자
-Binary Operator 이항 연산자
-Ternary Operator 삼항/조건 연산자
연산자와 공백
-공백 유무 중요하다!
-단항 연산자는 공백 없이 사용
-이항 연산자와 삼항 연산자는 공백 없어도 되고 있어도 되지만 있는 게 좋다. 양쪽에 동일한 공백 추가해야 한다.
연산자와 위치
-Prefix Operator 전치 연산자: 연산자가 피연산자 앞에
-Postfix Operator 후치 연산자: 연산자가 피연산자 뒤에
-Infix Operator 중치 연산자: 연산자가 피연산자 사이에
//example
Unary Operator (공백X)
+a
Binary Operator (공백O)
a + b
Ternary Operator (공백O)
a ? b : c
//
Prefix Operator
+a
Postfix Operator
a+
Infix Operator
a + b