티스토리 뷰

Swift

Swift [Variables/Constants/Types]

이도형 2023. 2. 4. 22:39

 Index

1. 변수와 상수(Variables and Constants)

2. 타입(Types)- 기본 데이터 타입(Data types) 및 타입 문법

3.  마무리

 

1. 변수와 상수(Variables and Constants)

1. 변수는 var 키워드를 사용하고 상수는 let 키워드 사용한다. 스위프트는 컴파일러가 타입 추론(Type Inference)이 가능하기 때문에 별도의 타입을 명시해주지 않아도 타입을 저장한다. 

기본문법:
var 변수명 = 데이터
let 상수명 = 상수값
예시:
var variable = 3 // 변수 variable 선언
let constant = "상수" //상수 constant 선언

2. 변수(var)는 동일 타입(Int, String...)에 한해 언제든 값 변경이 가능하며 프로그램의 실행에 따라 변하는 값의 저장도 가능하다.

3.  상수는 처음에 저장된 값을 이후에는 바꿀 수 없다. (고정값 느낌) Swift는 이에 대해 매우 엄격하다. 

var a = 3
var a2 = 10
a = a2 //변수 a값 10으로 변경
let b = 5
b = a2 // 컴파일 에러

예제1)

 임의의 숫자로 상수를 변수를 각각 1개 선언하고,  문자열 보간법(string Interpolation)을 이용하여 print( )함수 두 수의 합을 출력해보자. (예시 출력문:  x 와 y의 합은 x+y입니다.)

문자열 보간법: print()함수는 큰따옴표("")사이의 기본 parameter가 String이기에  \(변수명or상수명)로 표기

var variable = 3
let constant = 10
print("\(variable) 와 \(constant)의 합은 \(variable + constant)입니다. ") 
출력문 => 3 와 10의 합은 13입니다.

 

Wonders: let키워드는 언제 사용하고 why사용할까?

1) 저장하고자 하는 데이터 값이 최초의 저장값 이후로 바뀔 일이 없을때 사용한다.

2)상수(let)는 Why 사용할까?

  1. 값이 변하지 않는 상수이기에 코드의 가독성을 높인다.(가능하면 자주 사용하는게 권장된다☺️)

  2. 코드의 안정성이 높아진다. (코드가 길어졌을때, 개발자가 실수로  상수(let) 값을 변경하고자 한다면 컴파일 오류가 발생한다)

 

2. 타입(Types)- 기본 데이터 타입(Data types) 및 타입 문법

2- 1.  기본 타입- Int(정수), Double(실수, 15자리 소수점),Float(실수, 6자리 소수점), String(문자열), Character(단일 문자), Bool(true/false)

각 타입 선언 방식: 
var a: Int = 5 // 정수
let pi: Double = 5.5 // 실수
let eyesight: Float = 1.5 //실수
var chr: Character = "A" //1개의 문자 
var str: String = "Hello World" //1개 이상의 문자열
var right: Bool = true //부울(Bool)타입은 true/false값만 value로 가진다

2- 2.  스위프트의 타입 문법

1. 타입 명시 (Type Annotations): 변수나 상수 선언시, 타입도 명확히 지정하는 것

var a1: Int //타입 명시만 할때
var a2: Int = 3 //타입 명시와 값 초기화(3대입)를 동시에 할때
var a3 = 3 위에서 언급 했듯 타입명시를 하지 않아도 문제 없다.(컴파일러는 a의 타입을 알고있음)

2. 타입 안정성(Type Safety): 데이터 타입 명확구분, 다른 타입간 계산 불가

var num1: Int
num1 = 5.55

let a = 3
let b = 5.5
let c = a + b //Int 와 Double의 계산은 수행 불가함

3. 타입 추론(Type Inference): 타입을 지정하지 않아도 컴파일러가 타입을 유추해 데이터에 적합한 타입으로 저장(위에서 언급한 개념)

var swift = "스위프트"
print(type(of: swift)) => String 출력

let ten = 10
print(type(of: ten)) => Int 출력

4. 타입 변환(Type Conversion): 타입을 변환해 사용하는게 가능. (But 데이터가 변환되지 않을수도, 사라질 수도 있음)

(문자열을 숫자로 변환, 숫자를 문자열로 변환이 가능한게 장점)

let str1 = "11"
let number1 = Int(str1) // Int 타입의 11을 number1에 저장

let n1: Double = 155.55
let n2 = String(n1)
print(n2) // String 타입의 155.55출력


let pi = 3.14
let pi2 = Int(pi) // 소수점(0.14)은 버려진 3만 pi2에 저장됨

 

5. 타입애일리어스(Type Aliases): Swift에 내장된 타입에 새로운 별칭을 붙여 코드의 가독성을 높이기 위해 만들어진 문법

기본문법: 
typealias 원하는 별칭명 = 타입명

typealias My = String // My도 String타입
var swift2: my = "swift" //My(String)타입의 swift2변수
print(type(of: swift2)) //String이 출력됨

typealias Kg = Double // Kg도 String타입
var myWeight: Kg = 65.5
var yourWeight: Double = 65.5
print(type(of:myWeight) == type(of:yourWeight) )  //동일타입이기에 true가 출력됨

Swift에서는 어떤 형태든 치환이 가능. 아래의 표현은 후에 클로저(Closure)를 배울때 쉽게 볼 수 있는 형태
typealias Something = (Int) -> String //Something은 타입을 Int에서 String으로 변형시킨다

func someFunction(comletionHandler: (Int) -> String) { }

func someFunction2(comletionHandler: Something) { } //위 SomeFunction함수와 동일함

 

3.  마무리

가장 쉽고 기초적인 개념. Swift 변수와 상수의 차이. 데이터 타입들과 Swift 기본적 타입 문법이 무엇인지 알았다면 PASS

 

출처

Inflearn Allen님의 강의노트

Swift 공식문서

 

반응형

'Swift' 카테고리의 다른 글

Swift [Collection Types]  (0) 2023.02.10
Swift [옵셔널(Optionals) 총정리]  (0) 2023.02.09
Swift [Functions]  (0) 2023.02.08
Swift [Tuples/Loops]  (0) 2023.02.07
Swift [연산자(Operators)와 조건문(if문/switch문)]  (0) 2023.02.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함