Swift 문법 CH.1

김성환·2020년 8월 19일
0

swift문법

목록 보기
1/11

안녕하세요. 본 포스트에서는 Swift 기초적인 문법에 대해 설명하겠습니다.

※ 참고자료 : 꼼꼼한 재은 씨의 Swift:문법편

목차

  • 1. 변수와 상수를 정의하기
  • 2. 기본자료형
  • 3. 타입 어노테이션
  • 4. 쿼우팅 문법
  • 5. 범위 연산자

1. 변수와 상수를 정의하기

Swift에서의 변수와 상수 선언

변수 - var
상수 - let

var a = 1
let b = 2

초기화 과정 = 변수,상수에 처음으로 값을 대입하는 과정
즉, var a = 1 는 선언과 초기화 과정이 수행된 것이다.

Swift는 '타입 추론기' 라는 기능모듈파일을 컴파일러에 별도로 내장하여 초기화과정에서 타입을 추론하게 된다.

이때, 타입 추론기는 2가지 원칙에 따라 타입을 결정한다.

1. 주어진 값이 타입 A와 B에 동시 속할 경우 더 넓은 범위의 타입으로 결정. (예시) 3.14는 더 넓은 범위인 Double

2. 작은 범위 타입으로 정의하고 싶을 경우 반드시 어노테이션을 통해 선언함. (예시) var a : Character

var a = 1 의 과정의 5단계
1. var a -> a라는 변수를 선언
2. a = 1 -> a가 1을 만남
3. 컴파일러가 타입추론기를 이용해 1에 대한 적절한 타입 추론
4. 메모리 공간 확보
5. 값 저장(초기화 됨)

선언과 초기화를 분리하기

변수 - 가능(타입 어노테이션을 이용)
상수 - 불가능

var a //컴파일오류 -> 타입을 명시하지 않았기 때문에 타입 추론이 안됨
var a:Int //작동됨 -> 타입 어노테이션을 사용
let b // 컴파일오류 -> 타입을 명시하지 않았기 때문에 타입 추론이 안됨

2. 기본자료형

Swift의 기본 자료형

  1. Int(정수) -> Int8, Int16, Int32, Int64 4가지로 구분됨
    이때 Int는 위의 4가지를 대표하는 타입으로 Int를 사용할 경우 컴퓨터사양에 따라 적절하게 Int8,16,32,64를 결정하여 사용할 수 있게 된다.
  2. UInt(unsignedInteger) ->Int와 같다.
  3. Double, Float -> 메모리 크기 : Double>Float
  4. Bool -> true/false
  5. String(문자열)
  6. Character(문자)
    이때 주의해야 할 것은 문자열의 값을 표현할때 큰따옴표("") 사용하고 문자의 값을 표현할때도 큰따옴표("")를 사용한다는 것이다.
var a = 1 // 정수
var b = 1.32 // 실수
var c = true // bool
var d = "hello" // 문자열
var e = "h" // 문자
print(type(of: a)) // -> Int
print(type(of: b)) // -> Double
print(type(of: c)) // -> Bool
print(type(of: d)) // -> String
print(type(of: e)) // -> String ??? 문자로 쓰기 위해서는 타입 어노테이션 필요

3. 타입 어노테이션

Swift의 타입 어노테이션

타입 어노테이션이란?
변수, 상수를 선언할 때 그 타입을 명시적으로 선언해줌으로써 어떤 타입의 값이 저장될 것인지를 컴파일러에게 직접 알려주는 문법이다.

var a : Int // var 변수명 : 타입 // :(클론)을 이용한다.

타입어노테이션을 사용하는 경우 2가지
1. 선언과 초기화를 분리할 경우(변수의 경우 가능)
2. 타입을 직접 지정할 경우

var a = "h"
var b : Character = "h"
print(type(of: a)) // -> String 
// 왜?? 왜냐하면 ""를 사용하는 표현 모두 컴파일러가 문자열로 인식하기 때문이다.
print(type(of: b)) // -> Character

※ 문자열 템플릿 = 변수나 상수의 값을 문자열 속에 포함시키는 방법
사용하는 이유?? -> 여러 타입의 값을 문자열에 넣고 싶을 때 사용한다.
사용방법

print("\(변수,상수)")
var a ="hello"
var b = 2
print("안녕은 : \(a) 숫자 이는 : \(b)") // -> 안녕은 : hello 숫자 이는 : 2

4. 쿼우팅 문법

쿼우팅이란?

문자열을 따옴표로 묶어 표시하는 방법

var a = "hello" // hello에 쿼우팅이 적용된 모습
var b = hello // hello에 쿼우팅이 적용되지 않은 모습

쿼우팅이 제거된 hello 경우
컴파일러가 의미적 해석을 함 (밑에 과정)
1. hello가 예약어, 키워드 등록이 되어있는지 판단
2. 함수, 클래스, 구조체등 객체 타입인지 판단
3. 변수, 상수가 정의된 건지 파악
4. 위의 것들이 아니라고 판단하면 오류

문자열 쿼우팅 내부에서는 줄 바꿈을 허용하지 않는다. 따라서 \n(개행문자)를 사용한다.

var a = "hello
and hi" // 컴파일오류
var b = "hello\nand hi"// -> hello
                             and hi

하지만 개행문자를 쓰는 것을 번거롭기 때문에 swift는 트리플 쿼우팅을 제공한다.

트리플 쿼우팅이란?

문자열을 """ """ 큰따옴표 3개로 묶어 표시하는 방법(여러 줄을 문자열을 담을 수 있다.)

var a = 
"""
hello
and hi
"""
print(a) // -> hello
               and hi
//주의 첫번째 """의 뒤에는 문자를 쓰면 오류남
var b =
"""hello
and hi
"""
print(b) // -> 오류

5. 범위 연산자

범위 연산자란?

swift에서 제공하는 연산자로 주어진 값으로 연산을 수행하지 않고, 주어진 값 사이의 범위를 일정한 정수 간격으로 표현하는 연산자이다.(파이썬의 range와 비슷)
점을 사용하여 표현함(.3개)

범위 연산자의 종류

  1. 닫힌 범위 연산자
  • a...b (a부터b까지)
  1. 반 닫힌 범위 연산자
  • a..<b (a부터 b-1까지)
  • a>..b (오류,이런 문법은 없다.)
    ※ 주의 항상 a가 b보다 작아야 한다.
var a = 1
var b = 5
for i in a...b{
	print("\(i)")
}
//실행결과
1
2
3
4
5
profile
개발자가 되고 싶다

0개의 댓글