在設置環境時已經看過一段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識別字是用於標識變數,函數或任何其他用戶定義項的名稱。 識別字以字母A
到Z
或a
到z
或下劃線_
開頭,後跟零個或多個字母,下劃線和數字(0
到9
)。
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
var
和age
之間必須至少有一個空格字元(通常是空格),以便編譯器能夠區分它們。 另一方面,在以下聲明中 -
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
。
我們可以根據要求提供定制分隔符號和終止符。