如果你习惯了OC的语法,第一次接触Swift的语法可能会有点抗拒,因为Swift的语法有点怪。但如果你有前端的基础,学Swift可能会有点吃力,如果你有C++的基础可能会学得比较快点。不管你有什么样的语法基础,学会Swift后你都会觉得这是门优秀的语言,总之相比哥哥OC更简洁,更高效。现在Swift的ABI版本已经到5.2了,总体趋于稳定,社区也很活跃,是系统学习的好时机。
可以认为是C
的扩展写法:
let word = "world"
print("print output") // 输出:print output
print("hello \(word)") // 输出:hello world
NSLog("hello_%@",var)
,Swift使用\(变量)
;
);
)// 单行注释
/*
多行注释
*/
/*
1.多行注释
/* 多行注释的嵌套 */
2.多行注释
*/
Playground的注释支持markup语法(和markdown相似) 如何开启markup语法预览?
//: # 一级标题
//: ## 二级标题
/*:
# 一级标题
## 无序列表
- 第一个元素
- 第二个元素
## 有序列表
1. 第一个元素
2. 第二个元素
## 笔记
> 这是一个笔记
## 分割线
---
## 图片
![图片描述](图片链接)
## 链接
[链接标题](链接地址)
## 粗体/斜体
这是**粗体**,这是*斜体*
*/
Swift没有基本数据类型的概念,数据类型分为两大类:
0
和1
,但Swift中是true
和false
(和大部分语言一样)Character
修饰,否则会默认是字符串/// 布尔
let bool = true
// 字符串
let string = "1024星球"
// 字符
let character: Character = "🌎"
// 整数
let intDecimal = 20
let intBinary = 0b10001
let intOctal = 0o21
let intHexDecimal = 0x11
// 浮点数
let doubleDecimal = 125.0 // 十进制,等价于1.25e2,例:0.0125 <=> 1.25e-2
let doubleHexDecimal1 = 0xFp2 // 十六进制,意味着15x2^2,相当于十进制的60.0
let doubleHexDecimal2 = 0xFp-2 // 十六进制,意味着15x2^-2,相当于十进制的3.75
/* 以下都是表示12.1875
十进制:12.1875、1.21875e1
十六进制:0xC.3p0
*/
// 数组
let array = [1, 2, 3, 4, 5]
// 字典
let dictionary = ["age" : 20, "height" : 1.88]
通过官方简介即可看出,Int是用struct描述的
在Swift中不同类型之间是不能运算的,否则编译器会报错
正确做法:
let int1: UInt16 = 2_000
let int2: UInt8 = 1
let int3 = int1 + UInt16(int2)
let int1: UInt16 = 2_000
let int2: UInt8 = 1
let int3 = int1 + UInt16(int2)
let int = 3
let double = 0.1415926
let pi = Double(int) + double
print(pi) // 输出:3.1415926
let intPi = int + Int(double)
print(intPi) // 输出:3
思考:每次都需要转换,对于未知类型的数据(服务器返回的数据)怎么办?
// 字面量可以直接相加,因为数字字面量本身没有明确类型
let result = 3 + 0.1415926
print(result) // 输出:3.1415926
格式:
let 变量名: 变量类型 = 变量值;
var 变量名: 变量类型 = 变量值;
示例
let age: Int = 10;
print(age) // 输出:10
var name: String = "idbeny";
print(name) // 输出:idbeny
元组是借鉴C++中的概念(Python中也有此类型):
格式:
/*
格式一:常规
读取格式:变量名.索引
*/
变量修饰符 变量名 = (元素值,多个逗号分隔)
/*
格式二:解构
变量修饰符 (元组值对应的变量名称,位置要一一对应) = 已定义元组变量
读取格式:变量名称
*/
变量修饰符 (元组值对应的变量名称,位置要一一对应) = 已定义元组变量
// 解构扩展:对应位置不需要的时候可用下划线代替
变量修饰符 (元组值对应的变量名称,_) = 已定义元组变量
/*
格式三:key-value
读取格式:1. 变量名.索引 2. 变量名.元素变量名
*/
变量修饰符 变量名 = (元素变量名:元素值,……)
示例:
let tup1 = (404, "Not Found", "moreParas")
print(tup1.0,tup1.1,tup1.2) // 输出:404 Not Found moreParas
let (statusCode, statusDesc, paras) = tup1
print(statusCode, statusDesc, paras) // 输出:404 Not Found moreParas
let (tempStatusCode, _, _) = tup1
print(tempStatusCode) // 输出:404
let httpStatus = (statusCode: 404, statusDesc: "Not Found", paras: "moreParas")
print(httpStatus.statusCode, httpStatus.statusDesc, httpStatus.paras) // 输出:404 Not Found moreParas
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。