本章开始我们开始学习swift编程的基本语法,包括基本入门的import命令、令牌、注释、标识符、关键字、字面量等,学完本章我们将能够基本使用swift,为后面的教程打好基础。
第一个Swift程序
在设置环境的时候,我们已经看到了一个Swift程序,让我们再次以下面的Hello, World开始吧!为OS X创建的程序,其中包括如下所示的导入Cocoa:
/* 第一个Swift程序 */
var myString = "Hello, World!"
print(myString)
如果你为iOS创建相同的程序,那么它将包括导入UIKit,程序将如下所示
import UIKit
var myString = "Hello, World!"
print(myString)
现在让我们看看一个Swift程序的基本结构,这样你就很容易理解Swift编程语言的基本构件。
Swift的import命令
你可以使用import语句直接将任何Objective-C框架(或C库)导入到你的Swift程序中。例如,上面的import cocoa语句使构成OS X开发层的所有cocoa库、api和运行时在Swift中可用。
Cocoa是在Objective-C中实现的,Objective-C是C的超集,所以很容易将C甚至c++混合到你的Swift应用中。
Swift令牌
一个Swift程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串文字或符号。例如,下面的Swift语句由三个令牌组成:
print("test!")
单个令牌是:
print("test!")
swift注释
注释就像在你的Swift程序中帮助文本,它们会被编译器忽略,多行注释以/*开头,以*/结尾,如下所示:
/* 第一个Swift程序 */
多行注释可以嵌套在Swift中,以下是Swift中的一个有效注释:
/* 第一个Swift程序是 Hello, World!
/* 第二个Swift程序是 Hello, Swift! */
单行注释是在注释的开头使用//编写的。
// 第一个Swift程序
Swift分号
Swift不要求你在代码中的每个语句后面都要打一个分号(;),尽管这是可选的,果你使用分号,那么编译器也会报错。
但是,如果在同一行中使用多个语句,则需要使用分号作为分隔符,否则编译器将引发语法错误。你可以写上面的Hello, World!程序如下:
/* 第一个Swift程序 */
var myString = "Hello, World!"; print(myString)
swift标识符
Swift标识符是用来标识变量、函数或任何其他用户定义项的名称。标识符以字母A到Z或A到Z或下划线_开头,后跟0或多个字母、下划线和数字(0到9)。
Swift不允许在标识符中使用@、$和%等特殊字符。Swift是一种区分大小写的编程语言,因此,在Swift中,A和a是两个不同的标识符,这里有一些可接受的标识符的例子
Azad zara abc move_name a_123
myname50 _temp j a23b9 retVal
要使用保留字作为标识符,你需要在它的前面和后面加上一个反号(‘),例如,class不是有效的标识符,但`class`是有效的。
swift关键字
以下关键字在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编译器完全忽略它。
空白是Swift中用来描述空白、制表符、换行字符和注释的术语。空格将语句的一部分与另一部分分开,使编译器能够识别语句中一个元素(如int)的结束位置和下一个元素的开始位置。因此,在下面的语句里——
var age
在var和age之间必须至少有一个空白字符(通常是空格),以便编译器能够区分它们。另一方面,在下面的语句里——
int fruit = apples + oranges //获取总水果数
水果和=之间、=和苹果之间不需要空格字符,尽管为了更好的可读性,你可以自由地包含一些。
运算符两边的空间应该相等,例如:
int fruit = apples +oranges //语句错误
int fruit = apples + oranges //语句正确
swift字面量
字面量是整数、浮点数或字符串类型的值的源代码表示形式,下面是字面量的例子
92 // 整数字面量
4.24159 // 浮点数字面量
"Hello, World!" // 字符串字面量
Swift中的打印print
要在swift中打印任何东西,我们可以使用’print’关键字。
Print有三个不同的属性。
Item条目——要打印的项目
Separator分隔符——项目之间的分隔符
Terminator结束符——行结束的值,让我们看一个例子和相同的语法。
print("打印的条目", separator: "值 " , terminator: "值")
// 打印语句实例
print("AAA")
// 打印 "AAA \n" Adds, \n 作为结束符, " "默认作为分隔符
print("AAA","BBB separator: " Next" , terminator: " End")
//打印 "AAA Next BBB End"
在上面的代码中,第一个print语句默认将换行符作为终止符,而在第二个print语句中,我们将End作为终止符,因此它将输出End而不是\n。
我们可以根据客户的要求提供自定义的分隔符和结束符。
Swift学习结语
以上就是本章的swift编程基本语法,import命令用于导入需要使用的库或框架;swift语句由token组成;注释可以帮助我们在swift编程中注明代码的功能,使得编写的代码更清晰;swift语句一般不需要分号,但是如果多个语句在同一行则需要使用分号;标识符有一些命名规则,用于帮助我们自定义标识符;但是不能使用swift中规定或保留的关键字;swift中有字面量值,后面会有详细使用介绍。