[Swift] 변수, 상수와 기본 데이터 타입

Kiwi·2024년 2월 27일

Swift

목록 보기
4/21
post-thumbnail

🍏 Swift

swift는 타입-세이프 언어이다. 타입 세이프란 언어가 값에 대해 타입이 명확하도록 도와주고 코드에서 같이 동작할 수 있도록 해준다.

Swift는 변수를 식별 가능한 이름으로 값을 저장하고 참조한다. 또한 값을 변경할 수 없는 변수, 즉 상수를 사용하여 코드를 더 안전하고 명확하게 만든다.

📁 변수와 상수

변수(variable)는 값을 저장하는 공간. 변수는 var 라는 키워드를 앞에 붙여 표현한다.

var number = 1
number = 2

변수에 할당한 값은 언제든 변경할 수 있다.

반대로, 상수(constant)는 값을 변경할 수 없는 공간이다. 상수에는 값을 한번 할당하면 그 이후로는 상수의 값을 변경할 수 없다. 키워드는 let 이다.

let number = 1
number = 2 //오류가 난다!

위의 예시처럼 상수와 변수는 사용하기 전에 반드시 선언이 되어야 한다.

🔍 네이밍

룰

  • 숫자로 시작할 수 없다.
  • 띄어쓰기를 할 수 없다.
  • 특수문자는 _ / $ 만 허용한다.

통상적으로 지켜지는 룰

  • 변수의 첫글자는 소문자로 시작한다.
  • 몇단어가 합쳐진다면 두번째 단어부터 첫글자를 대문자로 써준다.
  • 함수의 이름도 소문자로 시작한다. 변수의 이름은 명사, 함수의 이름은 동사로 시작한다.

상수 또는 변수를 선언할 때 저장할 수 있는 값의 종류를 명확하게 하기 위해 타입 명시를 할 수 있다. 타입 명시는 상수 또는 변수 이름 뒤에 콜론과 공백 한칸뒤에 사용할 타입 이름을 적어 사용한다. 다음으로는 상수와 변수의 여러 타입들에 대해 살펴보자.

📁 정수타입

Int 와 UInt가 있다. 두 타입은 완전히 다른 타입으로 두타입끼리의 교환도 자원을 소모시킨다.

  • Int : +,- 부호를 포함한 정수
  • UInt : 0을 포함한 양의 정수
var num: Int = -1
let unsignedNum: UInt = 1

print("int : \(num), uint: \(unsignedNum)")

num = Int(unsignedNum)

알고리즘 문제를 풀다보면 Int32, UInt64와 같은 타입을 볼 수 있다. swift는 현재 플랫폼의 네이티브 사이즈와 같은 Int, UInt 정수타입을 제공한다.
ex) 32-bit 플랫폼에서 Int는 Int32와 같은 크기를 가짐

📁 불리언타입

Bool이라는 키워드로 나타나며 참(true) 또는 거짓(false)만 값으로 가진다. Swift는 2개의 부울 상수 값인 true 와 false 를 제공한다.

let isTrue: Bool = true
let isFalse: Bool = false

📁 실수타입

Float와 Double은 부동소수점을 사용하는 실수이며 부동소수 타입이라고 한다.

  • Float : 32비트의 부동 소수 표현, 6자리의 숫자까지만 표현 가능
  • Double : 64비트의 부동 소수 표현, 15자리의 숫자까지만 표현 가능
var floatVal: Float = 12345.6
var doubleVal: Double = 12345679.1

swift에는 타입 추론이라는 기능이 있다. 그래서 사용자가 변수나 상수에 타입 명시를 하지 않아도 알아서 추론해 지정하는 것이다.

let pi = 3.14159

그럼 다음과 같은 변수는 Double이라고 판단할까 아님 float이라고 판단할까?? 정답은 Double이다. swift는 부동 소수점 숫자의 타입을 추론할 때 항상 float보다 Double을 선택한다.

🔍 정수와 실수 변환

정수와 실수 타입의 변환은 명시적으로 변환해야 한다.

let three = 3
let point = 0.14159
let pi = Double(three) + point

변환과정이 없으면 덧셈이 허용되지 않는다. 반대로 실수도 정수로 변환해야 한다. 실수를 새로운 정수 값으로 초기화할 때 소수점 아래를 버린다.

📁 문자타입(Char)

character는 하나의 문자를 의미한다. 문자를 표현하기 위해서는 값의 앞 뒤에 큰따옴표를 사용하여 표현한다.

let char: Character = "A"

📁 문자열타입

String은 문자의 나열을 의미한다. 값의 앞뒤에는 마찬가지로 큰따옴표를 사용하여 표현한다.

let name: String = "amy"

빈문자열을 생성하려면 이니셜라이저를 사용하여 생성할 수 없다.

var gender: String = String()

append() 메서드를 사용하여 문자열을 이어붙일 수 있다

gender.append("male")

+연산자를 통해서도 문자를 이어붙일 수 있다

gender = name + "is" + gender
print(gender)

String 타입에는 기본적으로 많은 기능이 구현되어 있다.
문자열을 비교하여 참과 거짓을 알아낼때 == 연산자를 사용한다.

var isSame: Bool = false

isSame = name == "amy"
isSame = name == gender
profile
🐣 iOS Developer

0개의 댓글