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)
当我们在适当的游戏场中运行上述程序时,我们将得到以下结果−
Hello, World!
现在让我们来看一下Swift 4程序的基本结构,这样你就可以容易地理解Swift 4编程语言的基本构建块。
Swift 4中的导入
您可以使用 import 语句将任何Objective-C框架(或C库)直接导入到Swift 4程序中。例如,上面的 import cocoa 语句可以使Swift 4中的所有Cocoa库、API和运行时都可用。
Cocoa是用Objective-C实现的,它是C的超集,因此在Swift 4应用程序中混合使用C甚至C++也很容易。
Swift 4中的标记
Swift 4程序由各种标记组成,而标记可以是关键字、标识符、常量、字符串字面量或符号。例如,下面的Swift 4语句由三个标记组成:
print("test!")
The individual tokens are:
print("test!")
注释
注释就像是你的 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
分号
Swift 4不要求您在代码中的每个语句后面输入分号(;),尽管它是可选的;如果使用了分号,则编译器不会报错。
然而,如果您在同一行中使用多个语句,则必须使用分号作为分隔符,否则编译器会引发语法错误。您可以按以下方式编写上述的Hello, World!程序−
/* My first program in Swift 4 */
var myString = "Hello, World!"; print(myString)
标识符
Swift 4中的标识符是用来标识变量、函数或其他用户定义的项目的名称。标识符以字母A到Z或a到z或下划线_开头,后跟零个或多个字母、下划线和数字(0到9)。
Swift 4不允许在标识符中使用特殊字符,如@、$和%。Swift 4是 区分大小写 的编程语言。因此,在Swift 4中,Manpower和manpower是两个不同的标识符。以下是一些可接受的标识符示例−
Azad zara abc move_name a_123
myname50 _temp j a23b9 retVal
要将保留字用作标识符,您需要在其前后加上反引号(`)。例如, class 不是一个有效的标识符,但是 `class` 是有效的。
关键字
以下关键字在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 |
空白
只包含空格、可能带有注释的行被称为空行,Swift 4 编译器完全忽略它。
空白是 Swift 4 中用来描述空格、制表符、换行符和注释的术语。空白将语句的不同部分分隔开来,并使得编译器能够识别语句中的一个元素(比如 int)在哪里结束,下一个元素从哪里开始。因此,在下列语句中 –
var age
在编译器能够区分它们之间必须至少有一个空白字符(通常是空格), var 和 age 。另一方面,在以下语句中-
int fruit = apples + oranges //get the total fruits
水果与=之间不需要空格字符,或者在=和苹果之间也不需要空格字符,尽管你可以为了更好的可读性而包含一些空格字符。
运算符两边的空格应该相等,例如。
int fruit = apples +oranges //is a wrong statement
int fruit = apples + oranges //is a Correct statement
字面值
字面值是整数、浮点数或字符串类型的源代码表示。以下是字面值的示例−
92 // Integer literal
4.24159 // Floating-point literal
"Hello, World!" // String literal
在Swift中打印
要在Swift中打印任何内容,我们使用”print”关键字。
Print有三个不同的属性。
Items - 要打印的项目
Separator - 项目之间的分隔符
Terminator - 行应以哪个值结束,让我们看一个示例和相同的语法。
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。
我们可以根据需求设置自定义的分隔符和终止符。