==========
在上一章节中咱们曾经讲到如何创立 Swift 语言的 “Hello, World!” 程序。当初咱们来温习下。
如果创立的是 OS X playground 须要引入 Cocoa:
import Cocoa / 我的第一个 Swift 程序 / var myString = “Hello, World!” print(myString)
如果咱们想创立 iOS playground 则须要引入 UIKit :
import UIKit var myString = “Hello, World!” print(myString)
执行以上程序,输入后果为:
Hello, World!
以上代码即为 Swift 程序的根本构造,接下来咱们来具体阐明构造的组成部分。
Swift 引入
咱们能够应用 import 语句来引入任何的 Objective-C 框架(或 C 库)到 Swift 程序中。例如 import cocoa 语句导入了应用了 Cocoa 库和 API,咱们能够在 Swift 程序中应用他们。
Cocoa 自身由 Objective-C 语言写成,Objective-C 又是 C 语言的严格超集,所以在 Swift 利用中咱们能够很简略的混入 C 语言代码,甚至是 C++ 代码。
Swift 标记
Swift 程序由多种标记组成,标记能够是单词,标识符,常量,字符串或符号。例如以下 Swift 程序由三种标记组成:
print(“test!”)
以上语句由 3 个符号组成:单词 (print )、符号 (( )、字符串 (“test” )。
print (“test!”)
正文
Swift 的正文与 C 语言极其类似,单行正文以两个反斜线结尾:
// 这是一行正文
多行正文以 / 开始,以 / 完结:
/* 这也是一条正文,
但逾越多行 */
与 C 语言的多行正文有所不同的是,Swift 的多行正文能够嵌套在其余多行正文外部。写法是在一个多行正文块内插入另一个多行正文。第二个正文块关闭时,前面依然接着第一个正文块:
/* 这是第一个多行正文的结尾
/ 这是嵌套的第二个多行正文 / 这是第一个多行正文的结尾 */
多行正文的嵌套是你能够更快捷不便的正文代码块,即便代码块中曾经有了正文。
分号
与其它语言不同的是,Swift 不要求在每行语句的结尾应用分号 (;),但当你在同一行书写多条语句时,必须用分号隔开:
import Cocoa / 我的第一个 Swift 程序 / var myString = “Hello, World!”; print(myString)
标识符
标识符就是给变量、常量、办法、函数、枚举、构造体、类、协定等指定的名字。形成标识符的字母均有肯定的标准,Swift 语言中标识符的命名规定如下:
- 辨别大小写,Myname 与 myname 是两个不同的标识符;
- 标识符首字符能够以下划线(_)或者字母开始,但不能是数字;
- 标识符中其余字符能够是下划线(_)、字母或数字。
例如:userName、User_Name、_sys_val、身高等为非法的标识符,而 2mail、room# 和 class 为非法的标识符。
留神:Swift 中的字母采纳的是 Unicode 编码 [1]。Unicode 叫做对立编码制,它蕴含了亚洲文字编码,如中文、日文、韩文等字符,甚至是咱们在聊天工具中应用的表情符号
如果肯定要应用关键字作为标识符,能够在关键字前后增加重音符号(`),例如:
let class
= “Runoob”
关键字
关键字是相似于标识符的保留字符序列,除非用重音符号(`)将其括起来,否则不能用作标识符。关键字是对编译器具备非凡意义的预约义保留标识符。常见的关键字有以下 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 空格
Swift 语言并不是像 C /C++,Java 那样齐全漠视空格,Swift 对空格的应用有肯定的要求,然而又不像 Python 对缩进的要求那么严格。
在 Swift 中,运算符不能间接跟在变量或常量的前面。例如上面的代码会报错:
let a= 1 + 2
错误信息是:
error: prefix/postfix ‘=’ is reserved
意思大略是等号间接跟在后面或前面这种用法是保留的。
上面的代码还是会报错(持续留神空格):
let a = 1+ 2
错误信息是:
error: consecutive statements on a line must be separated by ‘;’
这是因为 Swift 认为到 1 + 这个语句就完结了,2 就是下一个语句了。
只有这样写才不会报错:
let a = 1 + 2; // 编码标准举荐应用这种写法 let b = 3+4 // 这样也是 OK 的
Swift 字面量
所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,可能间接了当地指出本人的类型并为变量进行赋值的值。比方在上面:
42 // 整型字面量 3.14159 // 浮点型字面量 “Hello, world!” // 字符串型字面量 true // 布尔型字面量
打印输出
Swift 应用 print 函数打印输出:
print(“Runoob”) // 输入 Runoob
print 函数是一个全局函数, 残缺的函数签名为:
public func print(items: Any…, separator: String = default, terminator: String = default)
如果咱们想让其不换行输入, 只须要将最初一个参数赋值为空字符串即可:
for x in 0…10{print(“(x) “, terminator: “”) } print()
输入后果为:
0 1 2 3 4 5 6 7 8 9 10
如果你须要接管用户的输出能够应用 readLine():
let theInput = readLine()