100 Days of SwiftUI - Day 1
변수와 상수
변수를 선언하기 위해 키워드 var
키워드를 사용한다.
상수를 선언하기 위해 키워드 let
을 사용한다.
변수는 할당된 값을 변경할 수 있지만,
상수는 값이 할당되면 변경하지 못한다.
//변수 선언
var name = "Lee"
name = "Park" //같은 타입인 경우 변경 가능
//상수 선언
let taylor = "swift"
taylor = "Lee" //오류 발생, 한번 할당된 상수의 값을 바꿀 수 없음
var보다는 let
코드 작성 시 var
보다는 let
을 주로 사용하기. 변하는 값이 아니라면 let
을 사용하도록 한다.
xcode에서는 var
로 선언된 변수의 값이 바뀌지 않는다면 경고를 표시해준다.
문자열
문자열을 표기할 때에는 “” (큰따옴표)를 사용한다.
여러 줄에 걸쳐 문자열을 표기할 때는 “”” (큰따옴표 3개)를 사용한다.
여러 줄에 긴 문자열을 표기하면, 코드가 깔끔해지고 다른 사람들과 코드를 공유할 때 읽기 편해진다.
var str1 = """
Hello,
Nice
to
Meet
You
"""
>> Hello,\nNice\nto\nMeet\nYou
시작하는 큰따옴표는 문자열과 붙어있어도 상관 없지만,
끝에 붙는 큰따옴표는 단독으로 존재해야 한다.
var str1 = """nice
to
meet
you
"""
var str2 = """nice
to
meet
you"""
>>str1: 정상 실행, str2: 에러
줄바꿈을 원하지 않는다면 역슬래시(\) 기호를 사용한다. 줄바꿈이 무시된다.
var str1 = """
Hello, \
Nice \
to \
Meet \
You \
"""
>> Hello, Nice to Meet You
문자열에서 사용 가능한 유용한 기능들
문자열의 길이를 알아내기 위해 변수나 상수명 뒤에 .count
를 사용한다.
let name = "Lee"
print(name.count)
>> 3
.uppercased()
: 문자열을 대문자로 변환한 결과를 리턴
let name = "lee"
print(name.uppercased())
>> LEE
.hasPrefix(_prefix:String)
/ .hasSuffix(_suffix:String)
: 문자열 시작/끝에 주어진 문자열이 있는지? true/false
let name = "lee chan hee"
print(name.hasPrefix("lee"))
print(name.hasSuffix("hi"))
>> true
>> false
정수와 실수
Int
: 정수형 타입
큰 숫자의 경우 편의를 위해 언더스코어 (_)로 읽기 쉽게 나눌 수 있다.
숫자 자체를 바꾸지는 않는다. 언더스코어는 무시되기 때문에 길게 사용해도 상관 없다.
let num = 1_0000_______0000
print(num)
>>100000000
사칙연산 : + - * /
.ismultiple(of:Int)
: 변수 또는 상수의 숫자가 of에 주어진 수의 배수인지 판별
10진수 표현
Double
: 부동소수점 표현
Double 타입과 Int 타입은 사칙연산 불가
var int1 = 10
var double1 = 10.0
int1 + double1 // 오류가 난다. Int 타입이 Double 타입으로 타입 변환이 될 줄 알았지만, 그렇지 않다.
서로 계산하기 위해서 형변환을 해야함
var int1 = 10 //Int
var double1 = 10.0 //Double
let res1 = int1 + Int(double1) //20
let res2 = Double(int1) + double1 //20.0
Type-Safe한 언어
Swift는 변수에 초기값이 입력되면 자동으로 변수의 타입을 추론한다.
변수는 초기값에 입력된 변수의 타입만 저장할 수 있으며, 다른 타입의 값을 입력하려고 하면 오류가 난다.
정리
- 변수를 선언할 때에는
var
, 상수를 선언할 때에는let
. 가능하면 상수를 변수보다 많이 사용하기 - 문자열은 큰따옴표 (“…“)로 표현. 여러 줄로 입력하고 싶다면 큰따옴표 3개의 쌍(“"”…””“)을 사용한다.
- Int는 정수, Double은 부동소수점
참고:
https://www.hackingwithswift.com/100/swiftui/1