변수 생성을 위해서는 var 키워드를 사용한다.
import UIKit
var a = "Hello, Playground"
var name = "Vina"
상수 생성을 위해서는 let 키워드를 사용한다.
import UIKit
let a = "Hello, Playground"
let name = "Vina"
변수는 말 그대로 변하는 값인 반면,
상수는 변하지 않는 값이다.
상수가 필요한 가장 큰 이유는 가독성 때문이다.
상수로 값을 선언하면 주석이나 API 문서를 보지 않고도
해당 값이 변화가 없다는 사실을 알 수 있다.
특정 값에 의미를 부여하는 경우 사용할 수 있다.
ex) 최대크기나 최소크기 등
변수나 상수를 선언하는 경우,
데이터 타입을 적는다.
위의 예시의 경우 적혀있지 않은데
그 이유는 데이터 타입이 생략이 가능하기 때문이다.
생략하지 않고 표현하면 아래와 같다.
import UIKit
var a : String = "Hello, Playground"
var name: String = "Vina"
var x: Int = 212
정수를 선언하는 경우 Int 또는 UInt 타입을 사용한다.
Int : 0,+,-를 포함한 정수 -> 음수값 할당 가능
UInt : -를 포함하지 않고 0을 포함한 양의 정수 -> 음수값 할당 불가능
true(참) / flase(거짓)만 값으로 갖음
toggle()을 사용하여 참 거짓 반전 가능
var boolean: Bool = true
boolean.toggle() // true와 false를 반전
32 비트 부동소수 표현
64 비트 부동소수 표현
Swift 4.2 부터 임의의 수를 만드는 random(in:) 메서드가 추가되었다.
UInt.random(in: 1...50)
Int.random(in: -50...50)
Double.random(in: 0.5...5.5)
Float.random(in: -1.5...2.5)
문자를 선언하는 경우 사용한다.
유니코드에서 지원하는 모든 언어 및 특수기호 등을 사용할 수 있다.
값의 앞 뒤에 큰 따옴표를 사용한다.
문자열을 선언하는 경우 사용한다.
Character와 마찬가지로 값의 앞 뒤에 큰 따옴표를 사용한다.
예시는 아래와 같다.
let name: String = "Vina"
var name2: String = "Mei"
빈 문자열을 생성할 경우 이니셜라이저를 사용한다.
빈 문자열에는 append() 메서드 또는 + 연산자를 이용해서 값을 추가할 수 있다.
var hello: String = String()
hello.append("Hello")
hello = hello + ", " + name
print(hello)
Swift는 기본적으로 String 타입을 위한 메서드와 프로퍼티들을 다양하게 구현되어 있다.
String 타입의 다양한 기능은 다음과 같다.
연산자를 이용한 문자열 결합
import UIKit
let hello: String = "Hello"
let name: String = "Vina"
var greeting: String = String()
greeting += hello
greeting += " "
greeting += name
print(greeting)
메서드를 통한 접두어 확인
import UIKit
let hello: String = "Hello"
let name: String = "Vina"
var hasPrefix: Bool = false
hasPrefix = hello.hasPrefix("He")
print(hasPrefix) // true 출력
hasPrefix = name.hasPrefix("Ve")
print(hasPrefix) // false 출력
메서드를 통한 접미어 확인
import UIKit
let hello: String = "Hello"
let name: String = "Vina"
var hasSuffix: Bool = false
hasSuffix = hello.hasSuffix("llo")
print(hasSuffix) // true 출력
hasSuffix = name.hasSuffix("Ve")
print(hasSuffix) // false 출력
메서드를 통한 대문자 변환
import UIKit
let hello: String = "Hello"
let name: String = "Vina"
var convertedString = hello.uppercased()
print(convertedString)
메서드를 통한 소문자 변환
import UIKit
let hello: String = "Hello"
let name: String = "Vina"
var convertedString = hello.lowercased()
print(convertedString)
import UIKit
let hello: String = "Hello"
let name: String = "Vina"
var isEmptyString: Bool = false
isEmptyString = hello.isEmpty
print(isEmptyString) // false 출력
let hi: String = ""
isEmptyString = hi.isEmpty
print(isEmptyString) // true 출력
import UIKit
let hello: String = "Hello"
let name: String = "Vina"
print(hello.count) // 결과값 : 5
print(name.count) // 결과값 : 4
| 특수문자 | 사용 |
|---|---|
| \n | 줄바꿈 문자 |
| \ | 백슬래시 |
| \" | 큰따옴표 |
| \t | 탭 |
| \0 | 문자열 끝 알림(null 문자) |
말 그대로 모든 데이터 타입을 사용할 수 있다.
아래와 같이 처음에는 문자열을 넣고 다음에는 정수나 실수를 넣더라도 상관없다.
import UIKit
var a: Any = "Hello"
a = 100
a = 99.9
클래스의 인스턴스를 할당할 수 있다.
Any 보다는 한정된 의미를 가진다.
=> Any와 AnyObject 모두 예기치 못한 오류의 위험을 증가시키므로 사용하지 않는 편을 권장한다
보통 다른 언어에서는 값이 비어있는 경우 null이라고 표현한다.
처음에 Swift에서 nil을 보고 정말 어색하게 느껴졌다..
암튼 그래서 nil은 비어있는 값을 의미한다.
Optionals(옵셔널)에서 많이 사용한다.
언어를 시작할때 항상 배우는 Variables와 Data Type에 대하여 정리하여 보았다.
이번에 Swift는 (다른 언어보다는) 정말 꼼꼼히 공부해보자는 생각으로 공부하기로 했다.
그래서 귀찮아도 예전에 처음 프로그래밍 언어를 배우던 마음으로 기초부터 정리를 시작하기로 했다.
이번주 중에 최근 들은 Swift Programming Tutorial for Beginners 강의의 내용 순서로
책으로 공부하면서 정리하는 것을 목표로 하고 있다.
(책을 기준으로 챕터 12까지,,정리,, 근데 못할거같아 넘 많앙)
그리고 다음주부터는 SwiftUI 공부를 병행할 수 있기를 바란다. 💻✨