Swift-basic-syntax

提供:Dev Guides
移動先:案内検索

Swift-基本的な構文

環境のセットアップ中に、Swift 4プログラムの一部を見てきました。 OS Xプレイグラウンド用に作成された次の* Hello、World!プログラムからもう一度始めましょう。これには、以下に示す *import Cocoa が含まれます-

/*My first program in Swift 4*/
var myString = "Hello, World!"

print(myString)

あなたがiOSの遊び場のために同じプログラムを作成する場合、それは import UIKit を含み、プログラムは次のようになります-

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

適切な遊び場を使用して上記のプログラムを実行すると、次の結果が得られます-

Hello, World!

Swift 4プログラムの基本構造を見てみましょう。Swift4プログラミング言語の基本的な構成要素を簡単に理解できるようになります。

Swift 4でのインポート

*import* ステートメントを使用して、Objective-Cフレームワーク(またはCライブラリ)をSwift 4プログラムに直接インポートできます。 たとえば、上記の *import cocoa* ステートメントは、すべてのOS Xの開発レイヤーを形成するすべてのCocoaライブラリ、API、およびランタイムをSwift 4で使用可能にします。

Cocoaは、CのスーパーセットであるObjective-Cに実装されているため、Swift 4アプリケーションにCとC ++を混在させることは簡単です。

Swift 4のトークン

Swift 4プログラムはさまざまなトークンで構成され、トークンはキーワード、識別子、定数、文字列リテラル、またはシンボルのいずれかです。 たとえば、次のSwift 4ステートメントは3つのトークンで構成されています-

print("test!")
The individual tokens are:
print("test!")

コメント

コメントは、Swift 4プログラムのテキストを支援するようなものです。 それらはコンパイラーによって無視されます。 以下に示すように、複数行のコメントは/で始まり、文字/で終わります-

/*My first program in Swift 4*/

Swift 4では、複数行のコメントをネストできます。 以下は、Swift 4の有効なコメントです-

/* My first program in Swift 4 is Hello, World!
/*Where as second program is Hello, Swift 4!*/*/

単一行コメントは、コメントの先頭に//を使用して記述されます。

//My first program in Swift 4

セミコロン

Swift 4では、コード内の各ステートメントの後にセミコロン(;)を入力する必要はありませんが、オプションです。セミコロンを使用する場合、コンパイラはそれについて文句を言いません。

ただし、同じ行で複数のステートメントを使用している場合、区切り文字としてセミコロンを使用する必要があります。そうしないと、コンパイラーは構文エラーを発生させます。 上記のHello、World!を書くことができます。 次のようなプログラム-

/*My first program in Swift 4*/
var myString = "Hello, World!"; print(myString)

識別子

Swift 4識別子は、変数、関数、またはその他のユーザー定義アイテムを識別するために使用される名前です。 識別子は、アルファベットA〜Zまたはa〜zまたはアンダースコア_で始まり、その後に0個以上の文字、アンダースコア、および数字(0〜9)が続きます。

Swift 4では、識別子内で@、$、%などの特殊文字を使用できません。 Swift 4は、*大文字と小文字を区別*するプログラミング言語です。 したがって、Swift 4では、Manpowerとmanpowerは2つの異なる識別子です。 ここに受け入れ可能な識別子のいくつかの例があります-

Azad        zara   abc   move_name   a_123
myname50    _temp  j     a23b9       retVal

予約語を識別子として使用するには、その前後にバックティック( `)を付ける必要があります。 たとえば、 class は有効な識別子ではありませんが、 `* class *`は有効です。

キーワード

次のキーワードはSwift 4で予約されています。 これらの予約語は、バッククォートでエスケープされていない限り、定数、変数、またはその他の識別子名として使用できません-

宣言で使用されるキーワード

Class deinit Enum extension
Func import Init internal
Let operator private protocol
public static struct subscript
typealias var

ステートメントで使用されるキーワード

break case continue default
do else fallthrough for
if in return switch
where while

式と型で使用されるキーワード

as dynamicType false is
nil self Self super
true COLUMN FILE FUNCTION
LINE

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

associativity convenience dynamic didSet
final get infix inout
lazy left mutating none
nonmutating optional override postfix
precedence prefix Protocol required
right set Type unowned
weak willSet

空白

コメントが含まれている可能性がある空白のみを含む行は空白行と呼ばれ、Swift 4コンパイラはそれを完全に無視します。

空白は、空白、タブ、改行文字、コメントを記述するためにSwift 4で使用される用語です。 空白はステートメントの一部を別の部分から分離し、コンパイラーがintなどのステートメントの1つの要素がどこで終了し、次の要素が始まるかを識別できるようにします。 したがって、次のステートメントで-

var age

コンパイラがそれらを区別できるようにするには、 varage の間に少なくとも1つの空白文字(通常はスペース)が必要です。 一方、次の文で-

int fruit = apples + oranges  //get the total fruits

果物と=、または=とリンゴの間には空白文字は必要ありませんが、読みやすくするために自由に含めることができます。

たとえば、演算子の両側のスペースは等しくなければなりません。

int fruit = apples +oranges   //is a wrong statement
int fruit = apples + oranges  //is a Correct statement

リテラル

リテラルは、整数、浮動小数点数、または文字列型の値のソースコード表現です。 以下は、リテラルの例です-

92              //Integer literal
4.24159         //Floating-point literal
"Hello, World!" //String literal

Swiftでの印刷

迅速に何かを印刷するには、「印刷」キーワードを使用します。

印刷には3つの異なるプロパティがあります。

アイテム –印刷するアイテム

*Separator* –アイテム間のセパレーター

ターミネーター –行の終わりの値。同じ例と構文を見てみましょう。

print("Items to print", separator: "Value " , terminator: "Value")
//E.g. of print statement.

print("Value one")
//prints "Value one \n" Adds, \n as terminator and " " as separator by
default.

print("Value one","Value two", separator: " Next Value" , terminator: " End")
//prints "Value one Next Value Value two End"

上記のコードでは、最初のprintステートメントはデフォルトで\ n、改行フィードをターミネーターとして追加します。

要件に応じて、カスタムのセパレーターとターミネーターを提供できます。