String interpolation
// 문자열을 동적으로 처리
var str = "12.34KB"
let size = 12.34
// 두 값의 자료형이 일치하지 않아서 에러
// str = size + "KB"
// 이렇게하면 되긴 하는데 거의 이렇게 하지 않고 String Interpolation 사용
str = String(size) + "KB"
// String Interpolation
str = "\(size)KB"
// 그러나 단점
// 직관적으로 확인할 수 있지만 자료형을 직접 명시해서 지정할 수 없음
Format Specifier
// 원하는 자료형을 직접지정하고 싶다면 다음 방법 사용
// %.1 -> 포맷 지정자
// 소수점 한자리 수 까지 표현하는 것
str = String(format: "%.1fKB", size)
// %@ -> 문자열
String(format: "Hello, %@", "Swift")
// %d -> 정수
String(format: "%d", "12")
// %f -> 실수
String(format: "%f", "12.34")
// 실수를 소수점 세번째 자리까지
String(format: "%.3f", "12.34")
// 전체 문자를 10자리로 만든다음 소수점 세번째 자리 까지
String(format: "%10.3f", "12.34")
// 전체 10자리중 12.340 을 제외한 부분을 0으로 채움
String(format: "%010.3f", "12.34")
String(format: "[%d]", 123)
// 양수면 오른쪽 정렬
String(format: "[%10d]", 123)
// 음수면 왼쪽 정렬
String(format: "[%-10d]", 123)
let firstName = "Yoon-ah"
let lastName = "Lim"
// 한국은 성이 먼저오니까 포맷 지정자에서 순서를 바꾼다.
// let korFomat = "그녀의 이름은 %@ %@ 입니다."
let korFomat = "그녀의 이름은 %2@ %1@ 입니다."
let engFormat = "Her name is %@ %ㄹ@."
String(format: korFomat, firstName, lastName)
String(format: engFormat, firstName, lastName)
Escape Sequence
// escape 시퀀스
str = "\\"
print(str)
print("A\tB")
print("C\nD")
print("\"Hello he said.")