- String (๋ฌธ์) = ""
- Int (์ซ์) = 0
- UInt (๋ถํธ์๋ ์ซ์ = 8
- Bool (์ฐธ, ๊ฑฐ์ง) = true, false
- Float ์์์ = 4 (4.0๋ก ํํ)
- Double ์์์ (Float๋ณด๋ค ๋ ๋ง์ ์ ํํ),์ ์๋ ๊ฐ๋ฅ =3.234342
- Characther ์ด๋ชจ์ง, ํ ๊ธ์์ธ ๋ฌธ์ํํ = ":rocket"
- Pinst() = ๋๋ฒ๊ทธ ์์ญ์ ์ํ๋ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํ ํจ์
- ์ฃผ์ : /* ~ */(๋ฒ์), //, ///
- Semicolon = ๋
๋ฆฝ์ ์ผ๋ก ์ฐ์ง ์์ผ๋ ํ๋ผ์ธ์ ๋ค์ค๋ช
๋ น์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ
print(""); print(0); print(1); print(2);
-
์์์ ๋ณ์๋ ํ์ฌ ์ด๋ค ๋ฐ์ดํฐ์ ๋ํ ์ํ๊ฐ, ์์ฑ ์ ๋ณด ๋ฑ์ ๋ด๊ณ ์๋ ์ปจํ ์ด๋
- ์์ (Constants) : ํ ๋ฒ ์ค์ ๋๋ฉด ๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ
- ๋ณ์ (Variables) : ์ค์ ํ ๊ฐ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ
let name = ""
var age = 0
age = 20
//๋ค์ค์ผ๋ก ์ฌ์ฉํด์ผํ ๊ฒฝ์ฐ
var x = 0.0, y = 0.0, z = 0.0
x = 20
y = 40
x = 33
let ฯ = 3.14159
let ไฝ ๅฅฝ = "ไฝ ๅฅฝไธ็"
let ๐ถ๐ฎ = "dogcow"
let ํ๊ธ = "์ธ์ข
๋์"
let `let` = 1 // Swift ์์ ์ฌ์ฉ๋๋ ํค์๋์ผ ๊ฒฝ์ฐ backquote(`) ๋ฅผ ์ด์ฉํด ์ฌ์ฉ ๊ฐ๋ฅ
print(ฯ)
print(ไฝ ๅฅฝ)
print(ํ๊ธ)
print(๐ถ๐ฎ)
print(`let`)
- ๋ณ์๋ก ์ฌ์ฉํ ์ ์๋ ์ด๋ฆ
- ๊ฐ์ ์ค์ฝํ ๋ฒ์ ๋ด์์ ์ค๋ณต๋๋ ์ด๋ฆ
- ๊ณต๋ฐฑ๋ฌธ์
- ์ํ ๊ธฐํธ (โ, โ ๋ฑ)
- ํ์ดํ (โ, โ ๋ฑ)
- ์ซ์๋ก ์์ํ๋ ์ด๋ฆ (์์ ๋ถ๋ถ ์ธ์๋ ์ฌ์ฉ ๊ฐ๋ฅ)
// e.g.
// let ํ๊ธ = "ใฑ"
// let ๊ณต ๋ฐฑ = "X"
// let โ = "root"
// let โ = "arrow"
// let 369๊ฒ์ = "12์ง45์ง..."
- Type Annotation : ๋ณ์ ์ ์ธ์ ์ฌ์ฉ๋ ์๋ฃ์ ํ์ ์ ๋ช ํํ๊ฒ ์ง์
let year: Int = 2019
let language: String
language = "Swift"
var red, green, blue: Double
red = 255.0
green = 150.123
blue = 75
- Type Inference : ๋ณ์ ์ ์ธ์ ์ฌ์ฉ๋๋ ๊ฐ์ ํ์ ์ ํตํด ๋ณ์์ ํ์ ์ ์ถ๋ก
let name: String = "Tory"
type(of: name)
let age: Int = 4
type(of: age)
type(of: age)
์ ํตํด ํ์
์กฐํ๊ฐ๋ฅ.
-
๋ฆฌํฐ๋ด : ์์ค์ฝ๋์์ ๊ณ ์ ๋ ๊ฐ์ผ๋ก ํํ๋๋ ๋ฌธ์ (๋ฐ์ดํฐ) ๊ทธ ์์ฒด)
(์ ์ / ์ค์ / ๋ฌธ์ / ๋ฌธ์์ด / ๋ถ๋ฆฌ์ธ ๋ฆฌํฐ๋ด ๋ฑ) -
Numeric Literals
var signedInteger = 123
signedInteger = +123
signedInteger = -123
type(of: signedInteger)
// 10์ง์
let decimalInteger = 17
// 2์ง์
let binaryInteger = 0b10001
type(of: binaryInteger)
// 8์ง์
let octalInteger = 0o21
// 16์ง์
let hexadecimalInteger = 0x11
//1000000000์ _๋ก ์์ ๋กญ๊ฒ ๊ตฌ๋ถ์ง์ ์ ์์
var bigNumber = 1_000_000_000
bigNumber = 1_0000_0000_0000
bigNumber = 000_001_000_000_000
bigNumber = 0b1000_1000_0000
bigNumber = 0xAB_00_FF_00_FF
- 8-bit : Int8, UInt8
- 16-bit : Int16, UInt16
- 32-bit : Int32, UInt32
- 64-bit : Int64, UInt64
- Platform dependent : Int, UInt (64-bit on modern devices)
//64๋นํธ
var integer = 123
integer = -123
type(of: integer)
var unsignedInteger: UInt = 123
type(of: unsignedInteger)
MemoryLayout<Int8>.size
Int8.max
Int8.min
MemoryLayout<Int16>.size
Int16.max // (-2^15) ~ (2^15 -1)
Int16.min
MemoryLayout<UInt8>.size
UInt8.max // 2^8 - 1
UInt8.min // 0
MemoryLayout<Int32>.size
Int32.max
Int32.min
MemoryLayout<Int64>.size
Int64.max
Int64.min
//var number1 = Int(Int32.max + Int32(100))
//iPhone6 = 64๋นํธ
//iPhone5 = 32๋นํธ
- Int ์ Int32.max ~ Int64.max ์ฌ์ด์ ์ซ์๋ฅผ ๋ฃ์์ ๊ฒฝ์ฐ ์๊ฐํด์ผ ํ ๋ด์ฉ์?
MemoryLayout<Int>.size
Int.max
Int.min
MemoryLayout<UInt>.size
UInt.max
UInt.min
Int32.max
Int64.max
let q1 = Int(Int32.max) + 1
//Int32.max + 1 ์ค๋ฒํ๋ก์ฐ / 32๋นํธ ์ด๊ณผ
//Int64.max + 1
//์ค๋ฒํ๋ก์ฐ ์ฐ์ฐ์ , ์์ ๊ฒ ๋ฌด์ํ๊ณ ์ฌ์ฉํ ์ ์์
// ์๋ ๊ฐ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋?
// Overflow addition
//var add: Int8 = Int8.max + 1
var add: Int8 = Int8.max &+ 1
Int8.min
Int8.max &+ 1
Int32.max &+ 1
Int64.max &+ 1
// 01111111 Int8์ ๋งฅ์ค
// + 1
//----------
// 10000000
// 01111111
// 10000000
var floatingPoint = 1.23
floatingPoint = 1.23e4
type(of: floatingPoint)
var floatingPointValue = 1.23
type(of: floatingPointValue)
var floatValue: Float = 1.23
type(of: floatValue)
MemoryLayout<Float>.size
Float.greatestFiniteMagnitude
Float.leastNormalMagnitude
MemoryLayout<Double>.size
Double.greatestFiniteMagnitude
Double.leastNormalMagnitude
- Double - ์ต์ ์์์ ์ดํ 15์๋ฆฌ์ ์ดํ์ ์ ๋ฐ๋
- Float - ์ต์ ์์์ ์ดํ 6์๋ฆฌ์ ์ดํ์ ์ ๋ฐ๋
(โป๋ถ๋ ์์์ ์ด๋ฏ๋ก ์์์ ์ดํ์ ์ ๋ฐ๋๋ ๋ณ๊ฒฝ๋ ์ ์์)
var isBool = true
type(of: isBool)
isBool = false
//isBool = False
//isBool = 1
//isBool = 0
let str = "Hello, world!"
type(of: str)
let str1 = ""
type(of: str1)
var language: String = "Swift"
var nonCharacter = "C"
type(of: nonCharacter)
var character: Character = "C"
type(of: character)
//๋ฉ๋ชจ๋ฆฌ - ์ฝ๋, ๊ฒ๋ฆฌํฐ, ํ, ์คํ(16์ ์ ์ฅ๋๋ ์ด๊ณผํ๋ฉด ์คํ)
MemoryLayout<String>.size
MemoryLayout<Character>.size
//character = "string"
//character = ' '
//character = ""
//character = " "
- ๋ฌธ๋งฅ์ ๋ ์ ์ ํ ์ด๋ฆ์ผ๋ก ๊ธฐ์กดํ์ ์ ์ด๋ฆ์ ์ฐธ์กฐํ์ฌ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ
typealias Name = String
let name: Name = "Tory"
let nameString: String = "Tory"
type(of: name)
type(of: nameString)
let height = Int8(5)
let width = 10
//let area = height(int8) * width(int) //์๋ก ํ์
์ด ๋ค๋ฅด๊ธฐ๋๋ฌธ์ ์๋ฌ๋จ .
//print(area)
let h = Int8(12)
let x = 10 * h // (let x = 10 * h(int8) //ํ์
์ ์ง์ ํ๊ธฐ ์ด์ ์ ๊ณ์ฐํ๋ฉด 10d์ด ์์ฐ์ค๋ int8๋ก ๊ณ์ฐ๋์ด ์๋ฌ๋ฐ์ํ์ง ์์
print(x)