티스토리 뷰
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 |