본문 바로가기
swift

스위프트 기초 문법

by 승환파크 2024. 4. 2.

헤더 파일을 작성할 필요가 없다.

C 프로그램은 전처리를 위해 헤더 파일과 소스 파일의 역할이 구분되어 있다. 헤더 파일은 함수와 전역 변수의 선언을 담당하고, 소스 파일은 선언된 함수의 내용을 구현하는 역할을 한다. C에 기반을 둔 Objective-C 역시 헤더 파일과 메인 파일로 분리 되어 있다.

하지만 스위프트는 그와 다르게 전처리를 위한 헤더 파일은 필요하지 않다. 헤더 파일과 소스 파일이 하나로 통합된 .swift 파일에서 필요한 내용을 자유롭게 정의하고 사용할 수 있다. 스위프트는 클래스나 구조체를 선언할 때 정의(Interface) 와 구현(Impelmaentation)을 분리하지 않고 통합해서 작성하는 특징이 있다.

 

스위프트는 대소문자를 구분한다.

스위프트는 변수나 상수 이름에서 대소문자를 구분한다. 대문자 A와 소문자 a 는 서로 다른 문자이다. 따라서 아래 두 변수는 완전히 서로 다른 변수이다.

let a = 30
let A = 30

 

이러한 특성 때문에 함수나 메소드, 클래스, 구조체 등에 이름을 정할 때에는 아래와 같은 관례를 지켜줘야 한다.

  • 함수와 메소드, 인스턴스명의 첫 글자는 소문자이어야 한다.
  • 클래스와 구조체, 프로토콜 등 객체의 첫 글자는 대문자이어야 한다.

 

구문 끝의 세미콜론은 생략이 가능하다.

모든 구문마다 끝에 반드시 ;(세미콜론)으로 마감해야하는 Objective-C 와는 다르게 스위프트는 세미콜론을 사용할 필요가 없다.

 

엔트리 포인트(시작점)으로 사용되는 main() 함수가 없다.

시스템에서 main() 함수를 호출하는 것을 시작으로 프로그램이 실행되는 Objective-C와는 다르게 스위프트는 엔트리 포인트 함수가 없다. 대신, @UIApplicationMain 어노테이션을 사용하여 앱을 시작하는 객체를 지정한다. 하나의 앱에서 @UIApplicationMain 어노테이션이 붙은 객체는 단 하나뿐이어야 한다.

import UiKit

@UIApplicationMain
class AppDelegate : UIResponder, UIApplicationDelegate

 

문자열뿐만 아니라 문자도 큰따옴표를 사용한다.

대부분의 언어에서는 문자열을 표기할 때 큰따옴표를 사용하고 문자를 표기할 때 작은따옴표를 사용하는 반면, 스위프트는 문자열과 문자 모두 큰따옴표로 표시하기 때문에, 별도의 처리과정을 거치지 않으면 문자와 문자열을 구분할 수 없다. 따라서 문자를 저장하는 변수나 상수의 타입은 반드시 Character 타입으로 명시해주어야 한다. 명시적으로 지정하지 않으면 타입 추론기에 의해 문자열로 처리된다.

 

import 키워드를 사용하지만, 라이브러리와 프레임워크의 참조 용도이다.

Objective-C는 C 언어에 기반을 둔 언어이므로 다른 파일에 정의된 객체를 참조하려면 반드시 import 구문을 사용하여 객체가 정의된 헤더 파일을 반입해야 한다. 하지만 스위프트는 import 구문은 프레임워크나 외부 라이브러리를 사용하기 위한 목적으로만 사용된다. 프로젝트 내에 선언된 다른 객체를 호출할 때는 별도의 import 구문 없이도 참조할 수 있도록 프로젝트 범위의 네임스페이스가 제공되기 때문이다.

 

C나 자바처럼 한 줄 주석, 여러 줄 주석 처리 방식을 모두 사용할 수 있다.

주석은 대다수 언어에서 지원하는 기능이다. 프로그래밍 과정에서 중요한 내용을 기록해두고 잊지 않아야 하는 부분을 상기시킬 목적으로, 또는 코드의 흐름을 부분별로 설명하기 위해 코드에 추가하는 텍스트이다. 주석으로 작성한 부분은 실행되지 않으므로 원하는 내용을 필요한 곳에 작성할 수 있어 실무에서도 요긴하게 사용된다.

 

스위프트에서 주석은 // 를 사용하는 한 주 주석과 /* ~ */를 사용하는 여러 줄용 주석으로 나뉜다.

/*
 * 여러 줄 주석
 * 여러 줄 작성 가능
 */
 
 // 한줄 주석
 // 한 줄 씩만 작성 가능

 

여기서 특이점은 주석 내부에 다시 주석을 포함할 수 있다는 점이다. 즉, 여러 줄 주석 안에 또다시 주석을 중첩해서 사용할 수 있다.

/*
 *  /*
 *   * 주석안에 주석을 포함할 수 있다.
 *   */
 */

 

try ~ catch 방식의 오류 처리를 지원한다.

오류 처리는 스위프트 2.0부터 추가된 구문으로, 함수나 메소드가 리턴값 또는 매개변수를 이용하지 않고 외부로 직접 오류를 던질 수 있도록 하는 기능이다. 던져진 오류는 Try ~  catch 구문을 사용하여 잡아낼 수 있다.

'swift' 카테고리의 다른 글

스위프트 조건문  (0) 2024.04.06
스위프트 반복문  (1) 2024.04.05
스위프트 연산자  (1) 2024.04.03
스위프트 자료형  (1) 2024.04.03
스위프트 변수와 상수  (2) 2024.04.03