Swift 기본 구문


이전 장에서 우리는 Swift 언어로 "Hello, World!" 프로그램을 만드는 방법에 대해 이미 이야기했습니다. 이제 검토해 보겠습니다.

OS를 만드는 경우 다음으로 구조의 구성 요소를 자세히 설명합니다.

Swift Import

import

문을 사용하여 Objective-C 프레임워크(또는 C 라이브러리)를 Swift 프로그램에 도입할 수 있습니다. 예를 들어,
import cocoa

문은 Cocoa 라이브러리와 API를 가져오고 이를 Swift 프로그램에서 사용할 수 있습니다.

Cocoa 자체는 Objective-C 언어로 작성되었으며 Objective-C는 C 언어의 엄격한 상위 집합이므로 Swift 애플리케이션에서 C 언어 코드 또는 심지어 C++ 코드도 쉽게 혼합할 수 있습니다.

Swift 태그

Swift 프로그램은 단어, 식별자, 상수, 문자열 또는 기호가 될 수 있는 다양한 태그로 구성됩니다. 예를 들어, 다음 Swift 프로그램은 세 개의 태그로 구성됩니다.

import Cocoa

/* 我的第一个 Swift 程序 */
var myString = "Hello, World!"

print(myString)


Comments

Swift 주석은 C 언어와 매우 유사합니다. 한 줄 주석은 두 개의 백슬래시로 시작합니다.


import UIKit
var myString = "Hello, World!"
print(myString)

여러 줄 주석은 /로 시작합니다. *, */로 끝남:

Hello, World!

C 언어의 여러 줄 주석과 달리 Swift의 여러 줄 주석은 다른 여러 줄 주석 안에 중첩될 수 있습니다. 작성 방법은 여러 줄 주석 블록 안에 또 다른 여러 줄 주석을 삽입하는 것입니다. 두 번째 주석 블록이 닫혀도 여전히 첫 번째 주석 블록이 이어집니다.

print("test!")
标记是:单词、符号
print
(
   "test!"
)

여러 줄 주석을 중첩하면 코드 블록에 이미 주석이 있는 경우에도 코드 블록에 더 빠르고 편리하게 주석을 달 수 있습니다.

세미콜론

다른 언어와 달리 Swift에서는 각 문장 줄 끝에 세미콜론(;)이 필요하지 않지만, 같은 줄에 여러 문장을 작성할 때는 세미콜론으로 구분해야 합니다.

//这是一行注释


식별자

식별자는 변수, 상수, 메서드, 함수, 열거형, 구조체, 클래스, 프로토콜 등에 할당된 이름입니다. 식별자를 구성하는 문자에는 특정 사양이 있습니다.


대소문자를 구분합니다. Myname과 myname은 서로 다른 식별자입니다. start with 밑줄(_)이나 문자로 시작하지만 숫자는 사용할 수 없습니다.

    식별자의 다른 문자는 밑줄(_), 문자 또는 숫자일 수 있습니다.
  • 예: userName, User_Name, _sys_val, height 등은 합법적인 식별자인 반면 2mail, room# 및 class는 불법적인 식별자입니다.
  • 참고:
  • Swift의 문자는 유니코드 인코딩을 사용합니다[1]. 유니코드는 통합 인코딩 시스템(Unified Encoding System)이라고 합니다. 여기에는 중국어, 일본어, 한국어 및 기타 문자와 같은 아시아 텍스트 인코딩과 채팅 도구에서 사용하는 이모티콘도 포함됩니다. 키워드를 식별자로 사용해야 하는 경우 키워드를 앞뒤에 넣을 수 있습니다. 키워드에 악센트 표시(`)를 추가합니다. 예:

  • 키워드

    키워드는 악센트(`)로 묶이지 않으면 식별자로 사용할 수 없는 식별자와 유사한 예약 문자 시퀀스입니다. 키워드는 컴파일러에 특별한 의미를 갖는 미리 정의된 예약 식별자입니다. 일반적인 키워드에는 다음 4가지 유형이 포함됩니다.

    선언 관련 키워드

    classdeinitenumextension
    funcimportinitinternal
    letoperatorprivate 프로토콜
    publicstaticstructsubscript
    typealiasvar

    관련 키워드

    breakcase 계속 default
    doelsefallthroughfor
    ifinreturnswitch
    wherewhile

    표현과 키워드 입력

    asdynamicTypefalseis
    nilselfSelfsuper
    true _COLUMN__FILE_ _FUNCTION_
    _LINE_


    특정 상황에서 사용되는 키워드

    연관성 편의성dynamicdidSet
    final getinfixinout
    lazyleftmutatingnone
    nonmutatingionaloverridepostfix
    precedenceprefix 프로토콜필수
    rightset Typeunowned
    weakwillSet


    Swift Spaces

    Swift 언어는 C/C++ 및 Java처럼 완전히 무시되지 않습니다. Swift에는 특정 요구 사항이 있습니다. 공백을 사용하지만 들여쓰기에 대한 Python의 요구 사항만큼 엄격하지는 않습니다.

    Swift에서는 연산자가 변수나 상수를 직접 따를 수 없습니다. 예를 들어 다음 코드는 오류를 보고합니다.

    /* 这也是一条注释,
    但跨越多行 */

    오류 메시지는 다음과 같습니다.

    /* 这是第一个多行注释的开头
    
    /* 这是嵌套的第二个多行注释 */
    
    这是第一个多行注释的结尾 */

    이는 등호 바로 앞이나 뒤에 등호 사용이 예약되어 있음을 의미합니다.

    다음 코드는 여전히 오류를 보고합니다(공백에 계속 주의하세요):

    import Cocoa
    /* 我的第一个 Swift 程序 */
    var myString = "Hello, World!"; print(myString)

    오류 메시지는:

    let a= 1 + 2

    이것은 Swift가 문 1+가 끝났고 2가 다음 문이라고 생각하기 때문입니다. .

    이렇게 작성해야만 오류가 보고되지 않습니다.

    error: prefix/postfix '=' is reserved

    Swift 리터럴

    소위 리터럴은 해당 유형을 직접 표시하고 변수에 대한 작업을 수행할 수 있는 특정 숫자, 문자열 또는 부울 값을 나타냅니다. 할당된 값입니다. 예를 들면 다음과 같습니다:

    let a = 1+ 2