## Swift 基础
### Swift 常用数据类型
常用的数据类型有:整型(`Integer`)、浮点型(`Double`|`Float`)、布尔型(`Bool`)、字符串(`String`)、数组(`Array`)、集合(`Set`)、字典(`Dictionary`)、元组(`Tuple`)以及`nil`
### 变量与常量
#### 声明
常量的值一旦设定就不能改变,而变量的值可以随意更改。常量使用关键字 `let` 声明,变量使用关键字 `var` 声明,也可以在一行中声明多个常量或多个变量,使用 `,` 隔开。例如:
```
var x = 1,y = 2 ,z = 0.0 // 声明变量
let maxNum = 10 // 声明常量
```
> **注意:**
> 在实际开发使用中,如果代码中有不需要改变的值,建议使用 `let` 关键字将它声明为常量,只将需要改变的值声明为变量,使用 `var` 。
#### 类型标注
当声明常量或者变量时可以加上类型标注(`type annotation`),说明常量或者变量中要存储的值的类型。
声明方法是:在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。如:
```
var name: String = "zhang"
let maxInt: UInt = 1844
```
> **注意:** 一般而言我们很少需要写类型标注。如果我们在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型。
#### 命名规范
我们可以使用任何喜欢的字符作为常量和变量名,包括Unicode字符,**但是在实际开发使用中不推荐这样写**。例如:
```
var 名字 = "curder"
print("我的名字是\(名字)") // 打印结果: 我的名字是curder
print("我的名字是" + 名字) // 打印结果: 我的名字是curder
var = "哭"
```
![](image/QQ20161207-0.png)
> Mac 系统中使用 `command(⌘) + control(⌃) + space(空格)`可以呼出表情。
常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
一旦将常量或者变量声明为确定的类型,就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,也不能将常量与变量进行互转。
> 如果需要使用与 Swift 保留关键字相同的名称作为常量或者变量名,你可以使用反引号(`)以关键字包围的方式将其作为名字使用。
但是我们在开发中应当避免使用关键字作为常量或变量名,除非别无选择。
#### 输出
在 Swift 语言中,一些基础数据类型都可以使用 `print` 打印。
```
let x = 1 , y = true , z = 3
print( x , y , z ) // 1 true 3
```
##### 自定义输出
```
// 自定义分隔符(默认为空格)
print( x , y , z , separator:"-") // 结果为:`1-true-3`
// 自定义结束符(默认为 \n )
print( x , y , z , separator:"-",terminator:":)") // 结果为:1-true-3:)
```
##### 字符串插值
Swift 用字符串插值( `string interpolation` )的方式把常量名或者变量名当做占位符加入到长字符串中,Swift 会用当前常量或变量的值替换这些占位符。将常量或变量名放入圆括号中,并在开括号前使用反斜杠将其转义:
```
print("\(x) * \(z) = \(x * z)") // 1 * 3 = 3
```
#### 注释
##### 单行注释
```
//
```
##### 多行注释
```
/*
这是一个多行注释
*/
```
> 与 C 语言多行注释不同,Swift 的多行注释可以嵌套在其它的多行注释之中。你可以先生成一个多行注释块,然后在这个注释块之中再嵌套成第二个多行注释。终止注释时先插入第二个注释块的终止标记,然后再插入第一个注释块的终止标记:
```
/* 这是第一个多行注释的开头
/* 这是第二个被嵌套的多行注释 */
这是第一个多行注释的结尾 */
```
通过运用嵌套多行注释,可以快速方便的注释掉一大段代码,即使这段代码之中已经含有了多行注释块。
### 分号
与其他大部分编程语言不同,Swift 并不强制要求你在每条语句的结尾处使用分号(`;`),当然,也可以按照自己的编程习惯添加分号。有一种情况下必须要用分号,即打算在同一行内写多条独立的语句时,如下:
```
let cat = "?"; print(cat) // 输出 "?"
```
- 学习笔记
- 基础
- 基本类型之整型
- 基本类型之浮点型
- 基本类型之布尔类型以及简单的 if 语句
- 基础类型之元组
- 基本类型之其他
- 运算符
- 基础运算符
- 比较运算符、逻辑运算符
- 三元运算符
- 范围运算符for-in
- 逻辑控制
- 循环结构
- 选择结构
- 字符串
- Character和Unicode
- String.index 和 range
- 可选型
- 容器类
- 数组初始化
- 数组基本操作
- 字典初始化
- 字典基本操作
- 集合初始化
- 集合基本操作
- 函数
- 闭包
- 枚举
- 结构体
- 类
- 文档注释
- 属性和方法
- 下标和运算符重载
- 拓展和泛型
- 协议
- 其他
- Swift 3.0 For 循环
- Swift 随机数的生成
- IOS开发玩转界面 UIKit
- UILable 文本显示控件
- UIButton 简单的交互控件
- UIImageView 图片控件
- UISearchBar 搜索控件