2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Swift 간단 기초 문법

2024. 2. 18. 20:21ㆍIOS/Swift
SMALL

Swift의 전반적인 문법 특성에 대해 알아봅시다.

가장 기초적인 것으로서 이어지는 나머지 내용을 학습하기 위한 사전 내용이라고 생각하면 됩니다.

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

C 프로그램은 전처리를 위해 헤더 파일과 소스 파일의 역할이 분리되어 있습니다.

헤더 파일은 함수와 전역 변수의 선언을 담당하고

소드 파일은 선언된 함수의 내용을 구현하는 역할을 합니다.

C에 기반을 둔 오브젝티브-C 역시 헤더 파일과 메인 파일로 분리되어 있습니다.

반면 스위프트는 전처리를 위한 헤더 파일이 필요하지 않습니다.

헤더 파일과 소스 파일이 통합된 하나의 *.swift 파일에서 필요한 내용을 자유롭게 정의하고 사용하면 됩니다.

스위프트는 클래스나 구조체를 선언할 때 정의(Interface)와 구현(Implemaentation)을 분리하지 안고 통합해서 작성하는 특성이 있습니다.

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

스위프트는 변수나 상수 이름에서 대소문자를 구분합니다.

var a = 30

var A = 30

스위프트에서 대문자 A와 소문자 a는 서로 다른 문자입니다.

따라서

다음 두 변수는 완전히 서로 다른 변수 가 됩니다.

이러한 특성 때문에 함수나 메소드, 클래스, 구조체 등에 이름을 정할 때에는 다음과 같은 관례를 지켜주는 것이 좋습니다.

함수와 메소드, 인스턴스명의 첫 글자는 소문자로

클래스와 구조체, 프로토콜 등 객체의 첫 글자는 대문자로

구문 끝의 세미콜론은 생략 가능합니다.

모든 구문마다 끝을 반드시 ;(세미콜론)으로 마감해야하는 오브젝티브-C와는 달리,

스위프트는 세미콜론을 사용할 필요가 없습니다.

각 구문의 끝을 스위프트 구문 해석기가 알아서 찾아주기 때문입니다.

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

시스템에서 main() 함수를 호출하는 것을 시작으로

프로그램이 실행되는 오브젝티브-C와는 대조적으로, 스위프트는 엔트리 포인트 함수가 없습니다.

대신, @UIApplicationMain 어노테이션을 사용하여 앱을 시작하는 객체를 지정합니다.

하나의 앱에서 @UIApplicationMain 어노테이션이 붙은 객체는 단 하나뿐이어야 합니다.

import UiKit @UIApplicationMain
class AppDelegate : UIResponder, UIApplicationDelegate

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

대부분 언어에서는 문자열을 표시할 때는 큰따옴표를 사용하고, 문자를 표시할 때는 작은따옴표를 사용합니다.

하지만 스위프트에서는 문자열과 문자를 모두 큰따옴표로 표시하기 때문에, 별도로 처리하지 않으면 문자와 문자열을 구분할 수 없습니다.

따라서

문자를 저장하는 변수나 상수의 타입은 반드시 Charcacter 타입으로 명시해주어야 합니다.

명시적으로 지정해 주지 않으면 타입 추론기에 의해 문자열로 처리됩니다.

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

오브젝티브-C는 C 언어에 기반을 둔 언어이므로 다른 파일에 정의된 객체를 참조하려면

반드시 import 구문을 사용하여 객체가 정의된 헤더 파일을 반입해야 합니다.

그러나

스위프트에서 import 구문은 프레임워크나 외부 라이브러리를 사용하기 위한 목적으로만 사용됩니다.

프로젝트 내에 선언된 다른 객체를 호출할 때는 별도의 import 구문 없이도

참조할 수 잇도록 프로젝트 범위의 네임스페이스가 제공되기 때문입니다.

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

주석은 대다수 언어에서 지원하는 기능입니다.

프로그래밍 과정에서 중요한 내용을 기록해두고 잊지 않아야 하는 부분을 상기시킬 목적으로

또는 코드의 흐름을 부분별로 설명하기 위해 코드에 추가하는 텍스트입니다.

주석으로 작성한 부분은 실행되지 않으므로 원하는 내용을 필요한 곳에 작성할 수 있어 실무에서도 요긴하게 사용됩니다.

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

/*
* Date : 2017. 03. 10.
* Create : 이재은(sqlpro@rubypaper.com
* File : MusicalCharacter.swift
* Description : 개별 변수값을 할당한 다음, 변수를 조합하여 캐릭터의 스타일을 구성함
* 현재 제공되는 캐릭터 타입 : 의적, 사또, 포졸
*/

// 개별 변수 할당
var name = "홍길동" // 캐릭터명
var type = "의적" // 캐릭터 타입

특이한 점은 주석 내부에 다시 주석을 포함할 수 있다는 점입니다.

즉, 여러 줄 주석 안에 또다시 주석을 중첩해서 사용할 수 있습니다.

/*
* Date : 2017. 03. 10.
* Create : 이재은(sqlpro@rubypaper.com
* File : MusicalCharacter.swift
* Description : 개별 변수값을 할당한 다음, 변수를 조합하여 캐릭터의 스타일을 구성함
* 현재 제공되는 캐릭터 타입 : 의적, 사또, 포졸
/* 캐릭터 특징
   1. 의적 - 초기 아이템이 빈약하나 정의감으로 인해 능력치가 급상승됨
   2. 사또 - 초기 아이템이 넉넉하지만 백성들의 지지 기반이 약하므로 지속적인 성장이 어려움
   3. 포졸 - 초기 아이템과 성장력이 적절히 밸런스 잡힌 타입
   */ <= 타 언어에서 주석이 종료되는 위치
위 내용을 참고로 밸런스 데이터 처리 시 유의할 것
*/ <= 스위프트에서 주석이 종료되는 위치

 

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

오류 처리는 스위프트 2.0부터 추가된 구문으로

함수나 메소드가 리턴값 또는 매개변수를 이용하지 않고 외부로 직접 오류를 던질 수 있도록 하는 기능입니다.

던져진 오류는 try ~ catch 구문을 사용하여 잡아낼 수 있죠.

728x90

'IOS > Swift' 카테고리의 다른 글

Swift 자료형  (0) 2024.02.18
Swift 변수와 상수  (0) 2024.02.18
Swift 언어의 특징  (0) 2024.02.18
Swift 언어의 탄생과 배경  (0) 2024.02.18
앱개발의 Swift(스위프트)가 무엇인가?  (0) 2024.02.18