Swiftの基本構文


前の章で、Swift 言語で「Hello, World!」プログラムを作成する方法について説明しました。それでは、レビューしてみましょう。

OSを作成する場合、次にその構造のコンポーネントを詳しく説明します。

Swift Import

import

ステートメントを使用して、任意の Objective-C フレームワーク (または C ライブラリ) を Swift プログラムに導入できます。たとえば、
import Cocoa

ステートメントは Cocoa ライブラリと API をインポートし、それらを Swift プログラムで使用できるようにします。

Cocoa 自体は Objective-C 言語で書かれており、Objective-C は C 言語の厳密なスーパーセットであるため、C 言語コードや C++ コードを Swift アプリケーションに簡単に混在させることができます。

Swift タグ

Swift プログラムは、単語、識別子、定数、文字列、シンボルなどのさまざまなタグで構成されています。たとえば、次の Swift プログラムは 3 つのタグで構成されています。

import Cocoa

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

print(myString)


Comments

Swift のコメントは、C 言語と非常によく似ています。 単一行のコメントは 2 つのバックスラッシュで始まります。


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

複数行のコメントは / で始まります。 *, */ で終わる:

Hello, World!

C 言語の複数行コメントとは異なり、Swift の複数行コメントは他の複数行コメント内にネストできます。書き方は、複数行コメントブロックの中に、さらに複数行コメントを挿入します。 2 番目のコメント ブロックが閉じられても、最初のコメント ブロックが続きます:

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

複数行のコメントをネストすると、コード ブロック内に既にコメントがある場合でも、コード ブロックをより迅速かつ便利にコメントできます。

セミコロン

他の言語とは異なり、Swift ではステートメントの各行の終わりにセミコロン (;) を必要としませんが、同じ行に複数のステートメントを記述する場合はセミコロンで区切る必要があります:

//这是一行注释


識別子

識別子は、変数、定数、メソッド、関数、列挙型、構造体、クラス、プロトコルなどに割り当てられる名前です。識別子を構成する文字には特定の仕様があります。Swift 言語の識別子の命名規則は次のとおりです。


は 2 つの異なる識別子です。

    start with アンダースコア (_) または文字で始まりますが、数字は使用できません
  • 識別子の他の文字には、アンダースコア (_)、文字、または数字を使用できます。
  • 例: userName、User_Name、_sys_val、height などは正当な識別子ですが、2mail、room#、class は不正な識別子です。
  • 注:
  • Swift の文字は Unicode エンコーディング [1] を使用します。 Unicode は統一エンコーディング システムと呼ばれ、中国語、日本語、韓国語、その他の文字などのアジアのテキスト エンコーディングや、チャット ツールで使用する絵文字も含まれており、キーワードを識別子として使用する必要がある場合は、キーワードを前後に置くことができます。キーワードにアクセント記号 (`) を追加します。例:

キーワード

キーワードは、識別子に似た予約文字のシーケンスであり、アクセント記号 (`) で囲まない限り識別子として使用できません。キーワードは、コンパイラにとって特別な意味を持つ事前定義された予約識別子です。よくあるキーワードとしては以下の4種類があります。

宣言に関連するキーワード

classdeinitenumextension
funcimportinitinternal
letオペレータープライベートプロトコル
publicstaticstructsubscript
typealiasvar

とステートメント 関連キーワード

ifreturnswitchどこでwhile表現とキーワードを入力
休憩事件 継続デフォルト
doelsefallthroughfor


asdynamicTypefalseisnilselfSelfsupertru​​e_COLUMN__FILE_ _FUNCTION__LINE_ 特定のコンテキストで使用されるキーワード



連想性利便性動的didSetfinal getinfixinout怠け者左変異なし非変異オプション上書き後置優先前修正プロトコル必須正しい設定TypeunownedweakwillSetSwift Spaces



Swift言語は、C/C++やJava Spacesのように完全に無視されるわけではありません。 , 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