在设置环境时已经看过一段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
。
我们可以根据要求提供定制分隔符和终止符。