Swift基本語法
在前一章節中我們已經看到了 Swift 的開發環境設置。 讓我們再次開始用下麵的 OS Xplayground 創建的 Hello,World!程序 ,它包括 import Cocoa ,如下所示:
import Cocoa /* My first program in Swift */ var myString = "Hello, World!" println(myString)
如果為 iOS playground 創建相同的程序,然後將包括 import UIKit 語句,程序看起來如下:
import UIKit var myString = "Hello, World!" println(myString)
當我們使用適當playground運行上麵的程序,得到以下結果:
Hello, World!
現在來看看Swift程序的基本結構,因此,這是了解 Swift 編程語言的基本構建塊。
Import 在 Swift 的使用
可以使用 import 語句來直接導入任何 Objective-C框架(或C庫)到 Swift程序。例如上述 import cocoa 語句使所有 Cocoa 庫,APIs,並形成了所有OS X開發層,在運行時可用在 Swift。
Cocoa在Objective-C是C的一個超集實現,所以很容易將C甚至C++混合到 Swift 應用。
Tokens 在 Swift 的使用
Swift程序由各種令牌組成,令牌可以是一個關鍵字,標識符,常量,字符串文字或符號。例如,下麵的Swift語句由三個令牌組成:
println("test!") The individual tokens are: println ( "test!" )
注釋
注釋就像幫助文本在 Swift 程序中,它們被編譯器忽略。多行注釋以/*開頭並以*/字符結束,如下圖所示:
/* My first program in Swift */
Swift可以嵌套多行注釋。以下是Swift有效的注釋:
/* My first program in Swift is Hello, World! /* Where as second program is Hello, Swift! */
單個注釋使用//在注釋的開頭寫入。
// My first program in Swift ,這是一行注釋
分號
Swift不要求必須使用分號(;)在代碼每個語句後麵,雖然其可選的,但是如果使用分號,然後編譯器不會有什麼影響。
但是,如果在同一行,用分號作為分隔符分為多個語句, 否則編譯器將引發語法錯誤。可以重寫上麵的Hello,World!程序如下:
import Cocoa /* My first program in Swift */ var myString = "Hello, World!"; println(myString)
標識符
Swift 標識符是用於識彆一個變量,函數,或任何其它用戶定義的項目的名稱。一個標識符開始於字母A到Z或a到z或下劃線_後跟零個或多個字母,下劃線和數字(0〜9)。
Swift不允許標識符中有標點字符,如@,$和%。Swift 是區分大小寫的編程語言。因此,Manpower和manpower 在Swift中是兩個不同的標識符。下麵是可接受的標識的一些例子:
Azad zara abc move_name a_123 myname50 _temp j a23b9 retVal
要使用保留字作為標識符,需要在標識符之前和之後把它用反引號(')引用起來。例如,class 不是一個有效標識符,但`class`是有效的。
關鍵字
以下關鍵字在 Swift 中保留。這些保留字不要用作常量或變量或任何其它標識符名稱,除非它們用反引號轉義:
在聲明中使用關鍵字
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編譯器完全忽略它。
空格是 Swift 用來描述空格,製表符,換行符和注釋術語。空格分隔一個聲明為另一部分,使編譯器能夠查明在一個聲明中的元素,如int,結束和下一個元素開始。因此,在下麵的語句:
var age
var 和 age 之間必須有至少一個空白字符(通常是一個空間),以便編譯器能夠區分它們。另外,下麵的語句:
int fruit = apples + oranges //get the total fruits
fruit 和=之間,或=和apples 空格字符不是必須的,但如果希望使用是以可讀性為目的,可以加入一些空格。
字麵量
字麵量是整數,浮點數或字符串類型的一個值的源代碼表示。以下是字麵值的例子:
92 // Integer literal 4.24159 // Floating-yiibai literal "Hello, World!" // String literal