This is created by taking the lecture below
iOS프로그래밍기초 - Smile Han
예) 스위프트 프로그램에서 숫자를 저장
swift에서 모든 자료형은 대문자로 시작한다
var x : Int //초기값 없어도 된다
x = 10
print(x) //실행 결과 주석 처리 방법
Writes the textual representations of the given items into the standard output.
func print(_ items: Any..., separator: String = " ", terminator: String = "\n")
items
Zero or more items to print.
separator
A string to print between each item. The default is a single space (" "
).
terminator
The string to print after all items have been printed. The default is a newline ("\n"
).
print("One two three four five")
// One two three four five
print(1...5)
// 1...5
print(1.0, 2.0, 3.0, 4.0, 5.0)
// 1.0 2.0 3.0 4.0 5.0
for n in 1...5 {
print(n)
}
// 1
// 2
// 3
// 4
// 5
print(1.0, 2.0, 3.0, 4.0, 5.0, separator: "...")
// 1.0 ... 2.0 ... 3.0 ... 4.0 ... 5.0
for n in 1...5 {
print(n, terminator: "") // 하나를 출력할 수도 있고 ','해서 여러 개 출력할 수도 있다
}
// 12345
for n in 1...5 {
print(n, terminator: " ")
}
// 1 2 3 4 5
var x = 10
print(type(of:x)) //자료형 종류 알고 싶을때 // Int
let s = MemoryLayout.size(ofValue: x) //변수 x = Int 크기 알고 싶을 때_1 // 8
let t = MemoryLayout<Float>.size //Float 몇 바이트인지 알고 싶을 때, < > :제너릭 // 4
print(s, t) // 8 4
print(MemoryLayout.size(ofValue: x)) //Int 크기 알고 싶을 때_2 // 8
var welcomeMessage: String
//초기값이 없으므로 자료형을 직접 표기함
let meaningOfLife = 42 //meaningOfLife Int형으로 타입 추론됨
let pi = 3.14159 //pi는 Double형으로 추론됨
let anotherPi = 3 + 0.14159 //anotherPi는 Double형으로 추론됨
정수 (소수점이 없는 수)를 저장하는 데 사용
8비트, 16비트, 32비트, 64비트 정수를 지원
부호 없는 정수
애플은 특정 크기의 데이터 타입 보다 Int 데이터 타입을 권장
Int 데이터 타입은 해당 코드가 실행되는 플랫폼에 맞는 정수 크기를 사용
var maAge: Int = 20
//(초기값 20이 있으므로 : Int는 일반적으로 생략함)
32비트 부호 있는 정수 데이터 타입에 대한 최소값과 최대값을 출력
(출력하고 싶은 변수나 상수)
다른 타입의 값과 함께 출력할 때 ⇒ (" ") 양쪽에 큰따옴표해서 문자열 형식으로 출력해야 한다
print("Int32 Min = \(Int32.min) Int32 Max = \(Int32.max)")
// Int32 Min = -2147483648 Int32 Max = 2147483647
var myWeight: Double
var myWeight: Double = 58.5
//(초기값 58.5 있으므로 : Double은 일반적으로 생략함)
var orangesAreOrange : Bool
var orangesAreOrange: Bool = true
//(초기값 true 있으므로 : Bool은 일반적으로 생략함)
문자, 숫자, 문장 부호, 심볼 같은 유니코드(Unicode) 문자 하나를 저장
var 변수명: Character = "초기값"
주의 : 초기값은 작은 따옴표가 아니고 큰 따옴표
var myChar1: Character
var myChar2: Character = ":"
var myChar3: Character* = "X" //: Character 생략불가, 생략하면 String형임
- 유니코드를 이용하여 변수에 문자 'X'를 할당
- var myChar4 = "\u{0058}"
var userName: String = "Kim" //: String 생략하는 것이 일반적임
var age = 20
var message = "\(userName)의 나이는 \(age)입니다."
print(message)
// Kim의 나이는 20입니다.
표준 문자 세트뿐만 아니라 문자열에 개행, 탭, 또는 유니코드 값과 같은 항목을 지정할 수 있는 여러 특수 문자도 있음
이스케이프 시퀀스 (escape sequence)
특수 문자들은 역슬래시를 접두어로 하여 구별
var newline = "\n"
// newline
역슬래시로 시작되는 모든 문자는 특수 문자로 간주
역슬래시 문자 자체
일반적으로 많이 사용되는 특수 문자
var myVariable = 10
//(: Int 생략됨)
var x = 0.0, y = 0.0, z = 0.0
let maximumNumber = 10
let π = 3.14159
let 🐶🐮 = "dogcow"
var userCount = 10
var userCount: Int?
상수는 let 키워드를 사용하여 선언
선언하는 시점에서 상수에 값이 할당되어 초기화되고, 할당된 값을 수정할 수 없음
let maxUserCount = 20
애플은 코드의 효율성과 실행 성능을 높이기 위해서 변수 (var)보다는 상수 (let)를 사용하라고 권장
스위프트는 타입 안전 (type sate) 프로그래밍 언어
상수와 변수의 타입을 식별하는 방법은 두 가지
첫 번째 방법은 변수 또는 상수가 코드 내에서 선언되는 시점에 타입 어노테이션 (type annotation)을 사용하는 것
변수 또는 상수 이름 다음에 타입 선언을 두면 됨
Int 타입의 userCount 라는 이름의 변수를 선언
var userCount: Int = 10
//: Int가 type annotation
선언부에 타입 어노테이션이 없으면 스위프트 컴파일러는 상수 또는 변수의 타입을 식별하기 위하여 타입 추론 (type inference) 사용
해당 상수 또는 변수에 값이 할당되는 시점에서 그 값의 타입을 확인하고 그와 같은 타입처럼 사용
var signalStrength = 2.231
//var signalStrength: Double = 2.231
//signalStrength라는 변수를 Double 타입으로 간주
//스위프트의 타입 추론에서 모든 부동 소수점 수는 Double 타입
let companyName = "My Company"
//companyName이라는 변수를 String 타입으로 간주
let bookTitle : String
var book = true
if book {
bookTitle = "iOS"
} else {
bookTitle = "Android"
}
print(bookTitle)
// iOS