프로그래밍 언어나 컴퓨터 기본지식과 관련된 배경 지식 없이 학습을 시작하면 쉽게 벌써부터 포기하고 싶은 생각이 든다.
그 이유가 뭘까?🤔 고민해봤다. 그리고 그 이유를 간략하게 축약해봤다.
여기서 가장 핵심은 컴퓨터는 딱 시킨것만 한다. 는 것이다.
더 자세한 이해를 돕고자 준비한 영상이 있다.
아버지가 아들에게 컴퓨터가 일하는 방식을 가르쳐주는 내용인데, 이 영상을 보면서 몇 번을 웃은지 모르겠다.😂
자세한 내용은 생략하고, 이쯤에서 영상을 소개하는게 좋겠다.
(자식이 생기면 꼭 아이와 해봐야겠다!!)
(예제)
let userName: String = "jongdroid"
(데이터 생성만)
var userName2: String
(데이터 할당)
userName2 = "swift"
해당 코드를 간략히 짚어보자 !
let = 1 / userName = 2 / String = 3 / "jongdroid" = 4로 표현하겠다.
- (1) 데이터 형태 지정
데이터 값을 바꿀 것이라면 var, 바꾸지 않으면 let 키워드를 사용한다.- (2) 우리가 부르기로 한 데이터의 이름이다.
새우깡 하면 새우깡안에 든 과자봉지가 생각나듯이 이 이름하면 유추할 수 있는 내용으로 작명을 하는 것이 좋다.- (3) 입력할 데이터의 타입 지정
문자열을 담기 위해 String을 사용했으며 어떤 데이터 타입이 있는지는 곧 다뤄보자!
이런 결과가 나오는 이유
signed 정수의 경우 양수뿐만 아니라 음수까지도 그 범위를 허용한다.
하지만 unsigned 정수의 경우 음수까지 사용하려고 했던 경우를 줄이고 양수를 확장시켜준다.
- 즉 불필요한 공간을 사용하지 않겠다는 것이다.
나는 이런 생각을 해봤다.
양수 1만 사용할건데, 64비트의 정수형 데이터 타입을 사용하면 공간을 낭비하지 않을까?
Int8 로 선언하는게 메모리를 절약하지 않을까?
애플의 권장 사항
let someFloat: Float = 3.0
var someDouble: Double = 3.14
// someDouble = someFloat // 컴파일 에러 발생
삐익. 오류 발생
- Swift is Type Safe Language
즉 데이터 타입이 선언되고 값이 할당된 이후 절대로 다른 타입의 값을 넣을 수 없다.
let myChar: Character = "🙂"
let foodName: String = "볶음밥"
문자열 보간법이란?
let userAge: Int = 20
print("00님의 나이는 \(userAge) 입니다")
var userAge: Int = 28
userAge = 35
let userName: String = "Jongdroid"
// userName = "Swift" // 에러 발생
let sum: Int
var num1: Int = 500
var num2: Int = 500
sum = num1 + num2
print(sum) // 1000
num1 = 1000
num2 = 1000
sum = num1 + num2
print(sum) // 에러 발생
왜 에러가 발생할까?
- 4번째 라인에서 sum은 이미 num1 + num2로 연산되어 값을 할당받았다.
이후에 새로운 연산을 통해 let으로 정한 sum의 값은 당연히 바꿀 수 없다.
sum을 var로 고친다면 에러를 잡을 수 있을 것이다!
let myPhoneName: String = "Iphone-11pro"
주의할 것
var myName // 에러
let myName2 // 에러
let myName3: String
myName3 = "hoonjong"