0) 기본 출력 방법 (print)
var a = 5
print(a) // 5 출력
print(7) // 7 출력
print(a + 3) // 8 출력
print("a") // a 출력
print("a와 /(a)의 출력은 다릅니다") // a와 5의 출력은 다릅니다 출력
print() or print(\n) // 줄바꿈 출력
1) 변수(Variables) : 변할 수 있는 데이터
- 변수의 선언 규칙
이름은 소문자로 시작
var Username // 틀린 방법 var userName // 맞는 방법
변수는 선언 시 값 대입 or 값 변경 가능
//선언할 때 값을 대입 var a = 5 //나중에 값을 변경 var a: Int //Int, Double, String 등 형태는 반드시 지정되어야 한다. // 그리고 형태의 선언같은 경우는 반드시 대문자로 시작한다. (int 틀림)
대입 연산자 '='은 같다가 아니라 대입이다.
var a = 5 //a라는 변수에 5를 대입한다.
변수에 새로운 값을 대입하면 이전 값은 덮어쓰여진다
var a = 5 a = 3 //a에 저장되어있던 5가 사라지고 3으로 변함.
변수는 한 줄에 여러 개를 선언 후 콤마 연결이 가능하다
var x = 1, y = 2, z = 3 //동시 선언
2) 상수(Constants) : 변하지 않는 데이터
상수의 선언
let name = "김철수" // (O) let age = 20 // (O) let name = "김영희" //(X) -> 선언된 내용은 변경 불가 let age = 30 // (X) -> 선언된 내용은 변경 불가 let newName = "홍길동" // (O) -> 다른 상수엔 선언 가능
Swift의 데이터 타입
변수 선언의 정식 문법
var number: Int = 3 var char: String = "김철수" // : Int, : String 생략 가능. // 생략 시, 자동으로 타입 추론을 해주는데 확인이 필요할 경우 // 옵션 키 + 클릭
Swift의 주요 데이터 타입
반드시 맨 앞 글자는 대문자!
- Int : 정수 Integer 타입 ex) -1, 0, 1, 2, 3, 4…`
- Float : 실수(부동소수점) Floating Point Number (최대 6자리 소수점) 3.141592
- Double : 실수(부동소수점) (최대 15자리 소수점) 3.1415926548…
- Character : 문자 (글자 단 한 개) ex) a, b, c, A, B, C, 일, 이, 삼, “ “(공백)
- String : 문자열 ex) hello, swift, iPhone
- Bool : 참과 거짓 (참 = 1, 거짓 = 0)
3) 타입 주석/타입 추론/타입 안정성/타입 변환
- 타입 확인법
- var a = blahblah type(of: a) //실행 결과 Character.Type //출력이 되는 건 아님`
- 타입 주석(Type Annotation)
- // 자료형을 명확하게 지정하고 값을 부여하지 않은 채 선언 // Int로 선언하고 나중에 Double, String 등 다른 Type의 값을 담을 수는 없음 // 1단계) 변수 선언 var num: Int var str: String // 2단계) 값 저장 num = 5 str = "hello" // 3단계) 값 읽기 print(num) // 5 출력 print(str) // hello 출력`
- 타입 추론(Type Inference) : 타입을 지정하지 않아도 컴파일러가 타입을 유추하는 방식
var num = 1 // num이라는 변수에 Int형이 담겨있다고 타입 추론이 이루어진 상태 var str = "hello" // str이라는 변수에 String형이 담겨있다고 타입 추론이 이루어진 상태 var a = 3.14 // a라는 변수에 Double형이 담겨있다고 타입 추론이 이루어진 상태 // float형으로 표현이 가능하지만 타입 추론에서는 Double로 먼저 추론함
- 타입 안정성(Type Safety)
: 다른 타입끼리의 계산이 불가능함.var a: Int = 3 var b: Double = 3.14 var sum = a + b //데이터 타입(형태)이 달라서 계산이 안됨. 6.14가 안나옴.
- 타입(형) 변환(Type Conversion)
- // 1) 자체 형 변환 let str = "123" //Int 123이 아니라 String 123임 Int(str) //타입 변환 // 2) 형이 변환된 새로운 변수 생성 let str2 = "123" let strToNum = Int(str2) //새 변수에 형 변환된 str2 값 저장 print(strToNum) //Int형으로 변환된 123 출력 // Optinal(123)\n 출력`
형변환 예외 케이스
// String to Int (변형안되는 경우에만) let str = "안녕하세요" let num = Int(str) // nil이 리턴됨.
// Double to Int let str = "3.14" // String let num = Int(str) // nil이 리턴됨. 잘못된 형 변환의 경우임. //Int를 Double로는 변형 가능함 2 -> 2.0`
타입 엘리아스 : 별칭 붙이기
//Type Alias 응용 typealias Name = String let str: Name = "홍길동" //해당 사용은 아래와 같은 형태를 가짐 let str2: String = "홍길동"
typealias Name = String // 타입별명지정 별명이름 = 그 이름을 가진 타입의 형태는? // 타입 이름의 첫 글자는 무조건 대문자.