Swift基礎語法


在設定環境時已經看過一段Swift 4程式。使用以下「Hello,World!」 為OS X playground 建立的程式,包括import Cocoa,如下所示 -

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

print(myString)

如果為iOS playground 建立程式,那麼它將包含import UIKit,程式將如下所示 -

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

當使用playground執行上述程式時,將得到以下結果 -

Hello, World!

現在看一下Swift 4程式的基本結構,這樣您就可以輕鬆理解Swift 4程式設計語言的基本構建塊。

1. Swift 4匯入

使用import語句將任何Objective-C框架(或C庫)直接匯入到Swift 4程式中。 例如,上面的import cocoa語句使得構成所有OS X的開發層的所有Cocoa庫,API和執行時都可以在Swift 4中使用。

Cocoa是在Objective-C中實現的,它是C語言的超集,因此很容易將C語言甚至C++混合到Swift 4應用程式中。

2. Swift 4令牌

Swift 4程式由各種令牌組成,令牌可以是關鍵字,識別符號,常數,字串文字或符號。 例如,以下Swift 4語句由三個標記組成 -

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

3. 注釋

注釋就像在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
// 這是第二行注釋

4.分號

Swift 4不要求你在程式碼中的每個語句後鍵入分號(;),儘管它是可選的; 但如果使用分號,那麼編譯器不會提示有什麼不對。

但是,如果在同一行中使用多個語句,則需要使用分號作為分隔符,否則編譯器將引發語法錯誤。 可以寫上面的Hello,World! 程式如下 -

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

5.標識

Swift 4識別符號是用於標識變數,函式或任何其他使用者定義項的名稱。 識別符號以字母AZaz或下劃線_開頭,後跟零個或多個字母,下劃線和數位(09)。

Swift 4不允許在識別符號中包含特殊字元,如@$%。 Swift 4是一種區分大小寫的程式設計語言。 因此,"Manpower""manpower"是Swift 4中的兩個不同識別符號。以下是有效識別符號的一些範例 -

Azad        zara   abc   move_name   a_123
myname50    _temp  j     a23b9       retVal

要使用保留字作為識別符號,需要在它之前和之後放置一個反引號(`)。 例如,class 不是有效的識別符號,但

`class`

是有效的。

6. 關鍵字

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

6.空白格

只包含空格(可能帶有注釋)的行稱為空行,Swift 4編譯器完全忽略它。

空白格(Whitespace)是Swift 4中用來描述空格,製表符,換行符和注釋的術語。 空格將語句的一部分與另一部分分開,並使編譯器能夠識別語句中的一個元素(如int)的結束位置以及下一個元素的開始位置。 因此,在以下宣告中 -

var age

varage之間必須至少有一個空格字元(通常是空格),以便編譯器能夠區分它們。 另一方面,在以下宣告中 -

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

fruit=之間,或者=apples之間可不需要空格字元,儘管可以自由地包含一些空格字元以提高可讀性。

運算子兩側的空間應相等,例如 -

int fruit = apples +oranges    //不符合規範的語句
int fruit = apples + oranges   //符合規範的語句

7.文字值

文字是整數,浮點數或字串型別的值的原始碼表示。 以下是文字值的一些例子 -

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

Swift列印

要在swift中列印任何內容,需要使用print關鍵字。

列印有三種不同的屬性。

  • 專案 - 要列印的專案
  • 分隔符 - 專案之間的分隔符
  • 終止符 - 行應該結束的值

下面來看一個例子和語法 -

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,新換行作為終止符,而在第二個print語句中給出了「End」作為終止符,因此它將列印「End」而不是\n

我們可以根據要求提供客製化分隔符和終止符。