Playground에서 정지 버튼을 누르고 좌측 숫자 옆에 재생 버튼을 누르면 그 행까지만 실행한다. (Shfit + return과 동일) Shift + return을 반복해서 한줄씩 내려가며 디버깅하기 좋음.
자료형
Int : 정수 (기본적으로 Int만 써도 Int64로 설정된다. 그보다 작은 단위를 쓰려면 Int8, Int16, Int32 등으로 사용.)
UInt : 0 ~ 양의 정수. Int의 64비트 표현 범위가 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 인데 이걸 음수의 표현 범위를 전부 양수로 돌린다. 따라서 0부터 (9,223,372,036,854,775,807 + 9,223,372,036,854,775,808)까지 표현이 가능하다. 즉, 최대로 표현할 수 있는 양의 정수 크기는 Int일 때의 9,223,372,036,854,775,807 x 2 + 1 이다.
Float, Double : 실수 (Float은 32비트, Double은 64비트다. 단, Float도 Int 의 9,223,372,036,854,775,807 보다는 큰 수를 표현할 수 있다.)
Sring, Character : 문자
Bool : 참/거짓
var : 변수
let : 상수
\(변수 또는 계산식) : 문자열 내에 이런 형태가 있을 경우 문자가 아니라 변수나 계산식을 의미한다.
var helloString:String = "Score" // 문자열이 들어갈 수 있다.
var helloCharacter:Character = "A" // 단일 문자만 들어갈 수 있다.
print("\(helloString) \(helloCharacter)") // "Score + 공백 1칸 + A"
var helloString1 = "Good" // 생략하면 스위프트가 알아서 판단함.
var helloString2 = helloString1 + " morning" // 문자열끼리 더할 수 있다.
print(helloString2)
print("\(helloString2) friends!") // \( )는 문자 안의 변수나 계산식이다.
결과 :
Score A
Good morning
Good morning friends!
문법
< 변수 >
var height:Int = 170 / Int는 생략하고 var height = 170으로 입력하면 스위프트가 알아서 판단한다.
var weight:Double = 62.5 / Double은 생략하고 var weight = 62.5로 입력하면 스위프트가 알아서 판단한다.
var itemCount1:Int = 10 // 정수로 선언.
print(itemCount1)
var itemCount2 = 10 // 생략하면 스위프트가 알아서 판단함. 위와 같다.
print(itemCount2)
var itemCount3:Double = 10 // 실수로 선언.
print(itemCount3)
var itemCount4 = 10.0 // 생략하면 스위프트가 알아서 판단함. 위와 같다.
print(itemCount4)
결과 :
10
10
10.0
10.0
< 상수 >
let pi:Double =3.14 / 변하면 안 되는 상수(constant)를 선언할 때 사용한다. 아래 코드블럭 예를 참고.
var i = 2 // i = 2로 선언
print(i)
i = i + 2 // i에 2가 더해져 4가 됨.
print(i)
let j = 2
print(j)
j = j + 3 // 상수에 값을 더하라 해서 에러 발생!!
< 문자와 print()문, 기본 개행 >
파이썬의 print(" {} {} ".format(변수1,변수2)) 와 비슷하다. 문자열 내에 이 녀석이 있으면 문자가 아니라 변수나 계산식이다.
var helloString:String = "Score" // 문자열이 들어갈 수 있다.
var helloCharacter:Character = "A" // 단일 문자만 들어갈 수 있다.
print("\(helloString) \(helloCharacter)") // "Score + 공백 1칸 + A"
var helloString1 = "Good" // 생략하면 스위프트가 알아서 판단함.
var helloString2 = helloString1 + " morning" // 문자열끼리 더할 수 있다.
print(helloString2)
print("\(helloString2) friends!") // \( )는 문자 안의 변수나 계산식이다.
결과 :
Score A
Good morning
Good morning friends!
스위프트는 print()를 하면 라인 하나에 하나씩 출력되는 파이썬과 같다. 따라서 다음 프린트문 넘어가기 전에 \n을 하면 개행을 2번 한 것과 같은 결과가 나온다.
print("Hello world\n") // Hellow world를 찍어라. (기본적으로 파이썬처럼 한 줄에 하나의 명령이 들어가서 자동 개행된다.) (자바는 개행을 수동으로 해줘야 함.)
print("Hello world\n") // Hellow world를 찍고 개행을 해라. (기본 개행에 \n개행을 한 번 더 해서 2번 개행된다.)
print("\nHello world") // 개행을 하고 Hellow world를 찍어라.
print("\tHello world") // 탭을 하고 Hellow world를 찍어라.
print("\n\tHello world") // 개행을 한 다음 탭을 하고 Hello world를 찍어라.
print("\(3+2)") // \( )에 의해 변수 또는 계산식이 된다.
print("3+2") // "3+2"라는 문자로 인식.
결과 :
Hello world
Hello world
Hello world
Hello world
Hello world
5
3+2
2
4
2
< True or False >
Bool 참/거짓
var diet:Bool = false // diet의 자료형은 Bool이고, 값은 false다.
print(!diet) // (!=not)(diet=false) -> not false -> true
if(diet == false) { // (diet = false)니까 true! if문 실행!
}
if(!diet) { // (!diet)는 true니까 if문 실행.
}
< 형변환 >
1. Int ⟷ Double 형변환 : Int와 Double은 같이 연산이 불가능하다.
var intValue:Int = Int(123.75) // 형변환 없이 Int로 선언한 변수에 123.75를 입력하면 오류 발생.
print(intValue)
var price:Int = 100
var totalPrice = Double(price) * 1.1 // 그냥 더하면 에러남. Double로 형변환 해야 계산됨.
print(Int(totalPrice))
결과 :
123
110
2. 숫자 → 문자의 형변환 : 문자 변수 내에 숫자 변수를 넣기 위해선 형변환이 필요하다.
(주의! 문자열 내에 \(변수 또는 계산식)을 삽입하는 것과 혼동하지 말자. 문자 + 문자에 문자가 아닌 다른 자료형이 들어가면 에러가 발생하기 때문에 형변환이 필요하다. 아래 코드블럭을 참고하자.)
var maskCount:Int = 100
var message:String = "mask " + String(maskCount) + " remains" // 형변환 하지 않으면 에러 발생.
print(message)
print("maks " + String(maskCount) + " remains") // 형변환 하지 않으면 에러 발생.
print("maks \(maskCount)" + " remains")
print("maks \(maskCount) remains")
결과 :
mask 100 remains
maks 100 remains
maks 100 remains
maks 100 remains
'개발자 > Swift' 카테고리의 다른 글
Swift (스위프트) 연습 첫 번째 (0) | 2020.03.31 |
---|---|
Swift (스위프트) 함수 & 단축키 모음 (0) | 2020.03.31 |
Swift (스위프트) 별 찍기와 반복문에 대한 고찰 (0) | 2020.03.26 |
Swift (스위프트) 구구단 만들기 (0) | 2020.03.25 |
Swift (스위프트) 별찍기 (0) | 2020.03.25 |