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