Latest web development tutorials

スイフトの基本的な文法

前の節では、すでにスウィフト言語 "こんにちは、世界!"プログラムを作成する方法について話しています。 今、私たちは次回の見直しに来ます。

あなたはOS Xの遊び場ココアを導入する必要性を作成している場合:

import Cocoa

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

print(myString)

我々はiOSの遊び場を作成したい場合は、UIKitのを導入する必要があります。

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

上記のプログラムは、出力は次のようになります。

Hello, World! 

上記のコードは、その後、我々は構造の詳細部分に記載し、スウィフトプログラムの基本構造です。


スウィフト導入

私たちは、スウィフトプログラムへのObjective-C(またはCライブラリ)のいずれかのフレームワークを導入するためにimportステートメントを使用することができます。 例えば輸入ココア文がライブラリをインポートし、ココアのAPIを使用するために、我々はスウィフトプログラムでそれらを使用することができます。

ココア自体はObjective-C言語で書かれているのObjective-CはC言語の完全なスーパーセットであるので、我々は、C言語コード、あるいはC ++コードを混合スウィフト単純に使用することができます。


スウィフトマーク

トークンの様々なからスウィフトプログラムは、マーカーは、言葉、識別子、定数、文字列、または記号であることができます。 スウィフトの例では、以下のプログラムは、3つのトークンで構成されています。

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

ノート

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

//这是一行注释

複数行コメントは、/ *と* /終わりで始まります。

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

複数行コメントとC言語は、複数行のコメントスウィフトは、内部の他の複数行コメント内の異なるネストすることができますされています。 文言は、複数行のコメントブロック内の別の複数行のコメントの中に挿入されます。 最初のコメントブロックの後ろにまだその後、閉じた第二のコメントブロック:

/* 这是第一个多行注释的开头

/* 这是嵌套的第二个多行注释 */

这是第一个多行注释的结尾 */

複数行コメントのネストを使用すると、コードブロックが既にコメントがあっても、より迅速かつ簡単にコメントブロックでできることです。


セミコロン

(;)他の言語があるとは異なり、スウィフトは、文の各行の末尾にセミコロンを使用する必要はありませんが、行書かれたステートメントの数が同じで、セミコロンで区切られている必要があります。

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

識別子

識別子は、構造体、クラス、およびその他のプロトコルの名前を指定する変数、定数、メソッド、関数、列挙を、提供することです。 識別子を構成する文字は、次のようスウィフト言語識別子の命名、特定の規範のとおりです。

  • ケース、MYNAME MYNAMEは、2 異なる識別子 小文字が区別 され ます

  • 最初の文字識別子缶(_) または文字は下線 始まりその数にすることはできません。

  • 識別子は、(_)その他の文字はアンダースコア 文字または数字 であってもよいです

たとえば、次のようにユーザ名、User_Nameの、_sys_val、高さおよび他の正当な識別子と2mail、部屋#違法とクラス識別子。

注:スウィフトの文字は、Unicodeエンコーディングを使用しています[1]。ユニコードは、中国語、日本語、韓国語、および他の文字、そして私たちはチャットツールを使用していても顔文字として、テキストエンコーディングアジアを含む、統一された符号化方式と呼ばれています

あなたが識別子としてキーワードを使用する必要がある場合は、例えば、キーワード( `)の周りにアクセントを追加することができます。


キーワード

キーワードは、アクセント( `)の使用が同封する場合を除き、識別子に似予約文字列である、または識別子として使用することはできません。 キーワードは、コンパイラに予約識別子のための事前定義された特別な意味があります。 一般的なキーワードは、次の4つ。

そしてステートメント関連のキーワード

クラス deinit 列挙型 拡張
FUNC インポート init 内部
させます オペレータ プライベート プロトコル
パブリック 静的 構造体 添字
typealias VAR

そしてステートメント関連のキーワード

ブレーク ケース 続けます デフォルト
やります ほかに フォールスルー 以下のために
もし リターン スイッチ
どこ 同時に

式と型のキーワード

として dynamicType あります
ゼロ 自己 セルフ スーパー
_COLUMN_ _FILE_ _FUNCTION_
_LINE_

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

結合性 利便性 ダイナミック didSet
ファイナル ゲット 挿入辞 INOUT
怠惰な 変異 なし
nonmutating オプショナル オーバーライド 接尾辞
順位 接頭辞 プロトコル 必須
セット タイプ 所有されていません
弱いです willSet

スウィフトスペース

スウィフトは完全に無視して、スペースなどのC / C ++、Javaなどの言語ではない、スペースのスウィフトの使用は、一定の要件を持っていますが、Pythonのとは違ってそれほど厳しい要件をインデント。

スウィフトでは、オペレータは、変数または定数ですぐに続くことはできません。 たとえば、次のコードが与えられます。

let a= 1 + 2

エラーメッセージは次のとおりです。

error: prefix/postfix '=' is reserved

おそらく、この使用の前または後ろの等号が予約されていると直接意味。

次のコードは、(継続的なスペースに注意)与えられています:

let a = 1+ 2

エラーメッセージは次のとおりです。

error: consecutive statements on a line must be separated by ';'

スウィフト1+は、このステートメントは2次のステートメントで、終わった信じるようにするためです。

この方法でのみエラーを書きません。

let a = 1 + 2;  // 编码规范推荐使用这种写法
let b = 3+4 // 这样也是OK的

リテラルスウィフト

リテラルいわゆる、これは変数の割り当てのために地元の独自の型と値に直接指摘することができる具体的な数値、文字列、またはブール値としてのことをいいます。 たとえば、次のようにあります:

42                 // 整型字面量
3.14159            // 浮点型字面量
"Hello, world!"    // 字符串型字面量
true               // 布尔型字面量