Swift4 基础
创建: 2018/02/17
完成: 2018/02/19
更新: 2018/02/25 补充参照型只有类的实例和闭包
更新: 2018/03/03 加红加粗for-in注意事项, 常量不用也不能声明
【任务表】: TODO
| 数据类型与变量 | |||||||||||||||||||||
| Swift的数据类型 |
所有类的实体都是实例,都是运算对象,放到数组和哈希表里都一视同仁。 没有指针与数据本体的区别,但是被多个同时参照的时候需要区分。 值型与参照型 ● 参照型只有类的实例和闭包 值型里的参照型可以看做指针 |
||||||||||||||||||||
| 基本数据类型 |
|
||||||||||||||||||||
| 数值字符 |
|
||||||||||||||||||||
| 变量与常量 | 能用常量的不用变量 | ||||||||||||||||||||
| 变量的定义 |
var 变量名 (: 型) (= 式) // 带括号的可省略 (推荐)可以省略型,自动判断 |
||||||||||||||||||||
| 常量的定义 |
let 变量名 (: 型) (= 式) |
||||||||||||||||||||
| 类型转换 |
Swift不会自动进行类型转换 转换方法 // 写法 整数之间的比较不受类型限制 其他都不能跨类型比较(整数和实数不能比,Double和Float不能比) |
||||||||||||||||||||
| 字符串 |
""包裹, +连接, +=连接到自己后面 \t tab \n 换行 \" " \\ \ \u{} 8位以内的16进制数 \() 插值 |
||||||||||||||||||||
| print函数 |
print(..., separator: s=" ", terminator: s="\n") 指定多个参数时用separator的字符串来分割,默认空格 terminator可以指定结尾,默认换行 |
||||||||||||||||||||
| 数组 |
内部没有容量限制,随意存入取出 一个数组内部存入的实例类型必须相同 值型 var a = [, , , , ] // 默认的类型判断 var a : [Int] = [, , , , ] // 指明类型 var s = [Int]() // 使用初始化函数 也可以以式的结果作为元素 var a = [ +, +, +, + ] // [2, 3, 4, 5] |
||||||||||||||||||||
| 获取数组内部元素 |
array[n] 0开始,array.count-1为末尾 插入元素 array.append(v) // v是具体值 array += v |
||||||||||||||||||||
|
运算符 |
● 没有指针,* & ->的意思不一样 ● . , []不是运算符 ● 不存在++, -- ● 等式不返回值, 不能使用连等(a = b = c), 条件式里出现等式会报错 |
||||||||||||||||||||
| 运算符的注意 |
● 两边都有或者都没有空白的被视为两项运算符 a + b, a+b ● 单边没有空格的被视为前置/后置运算符 +a // 前置 a+ //后置 |
||||||||||||||||||||
| 命名法则 |
大驼峰记法: 型名, 类名 Int, Bool, SampleClass 小驼峰记法: 方法名, 变量名 firstVal, boderWidth, getLength 如果要用固有词做变量,加单引号(使用该变量处也要加单引号) var `if` = |
||||||||||||||||||||
| 型参数 |
泛型(Generics) # TODO: Supply [泛型 s13] var a : [Int] |
||||||||||||||||||||
| import模块 |
包含基本数据结构(基本类型), 运算, 函数等的是标准库 import导入库和框架, .swiftdoc, .swiftmodule 例: import Cocoa |
||||||||||||||||||||
| 命名空间 |
模块名.名字 (方法或者变量名) 可以嵌套, 模块名.类名.嵌套类名.名字 Swift也是命名空间,和其他的区分前面加Swift. 如Swift.print |
||||||||||||||||||||
| 注释 |
单行注释: // 多行注释: /* ... */ 可以嵌套,内部全作为注释 |
||||||||||||||||||||
| 控制类语句 | |||||||||||||||||||||
| 文 |
文末不需要; 长的式子可以换行 多行可以用;分隔写在一行 代入不可以用,分隔写在一行(用;) |
||||||||||||||||||||
| if |
if 条件 { // 不要括号
例 if num > {
|
||||||||||||||||||||
| while |
while 条件 {
|
||||||||||||||||||||
|
repeat-while C的(do-while) |
repeat {
|
||||||||||||||||||||
| for-in |
for 常量名 in 式 (where 式子) { // where可省略
● 常量自动声明,不用自己去声明,也不能在常量处声明 ● 只在循环内部有效 |
||||||||||||||||||||
| 范围运算符 |
|
||||||||||||||||||||
| switch |
switch 式 {
● 必须包含所有情况 ● 条件可以使数值,字符串,其他类型 ● 如果想要执行完case下沿继续运行,用fallthrough ● 实数有误差,避免使用 ● 重叠式上方的优先 |
||||||||||||||||||||
| 带标签的循环 |
标签1: while 条件 { // 例
● 在for/while/repeat-while前加上标签 ● continue/break 指定标签,不指定为当前的循环_ |
||||||||||||||||||||
| 带标签的if , switch |
标签1 : if 条件 {
● 只能用break, 不能用continue(用了跳出当前循环, 没有循环会报错) |
||||||||||||||||||||
| 独立代码块 |
do {
● 可以带标签, 跳出只能用break ● 就是例外处理的do-catch的do |
||||||||||||||||||||
| 简单的运行方法 | |||||||||||||||||||||
| playground | File>New>Playground | ||||||||||||||||||||
| 命令行 | 略 # TODO: Supply [命令行下的swift运行 p36] | ||||||||||||||||||||
Swift4 基础的更多相关文章
- Swift4 函数, 元组, 运算符
创建: 2018/02/19 完成: 2018/02/19 更新: 2018/02/25 修改标题 [Swift4 函数] -> [Swift4 函数, 元组, 运算符] 更新 :2018/03 ...
- Swift4.0复习特性、编译标志和检查API的可用性
1.Swift中的特性: @引出,后面紧跟特性名,圆括号带参数即可. @attribute(args) avaiable: 指明对象,函数,类型的可用性. @available(iOS 10.0, m ...
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- HTTPS 互联网世界的安全基础
近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
随机推荐
- Xcode 全局搜索失效的问题
早上手一快不知点了什么,然后全局搜索的功能就不起作用了.百度了一下才知道,原来把搜索范围给改了,改回来如下:
- BZOJ 2308 莫队入门经典
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2038 参考博客 https://www.cnblogs.com/Paul-Guderi ...
- Codeforces 653B Bear and Compressing【DFS】
题目链接: http://codeforces.com/problemset/problem/653/B 题意: 要求你构造一个长度为n的字符串使得通过使用m个操作,最终获得字符a.已知第i个操作将字 ...
- HDU 1244 【DP】
题意: 中文. 思路: 先初步处理,用give-take求出每个城市剩的钱. 求解问题转化成使得和不小于0的最长连续字串. 枚举起点,然后当该起点加的和为负时开始枚举下一起点.(这个状态的转移) 2W ...
- java基础 4 继承(1)访问权限与作用域
作用域与可见性 当前类 同一package 子类 其他package public √ √ √ √ protected √ √ √ defalut √ √ private √
- Dom对象的经常用法
Dom对象的经常用法: (1)getElementById() 查询给定ID属性值的元素,返回该元素的元素节点 1. 查询给定ID属性值的元素,返回该元素的元素节点.也称为元素对象. ...
- 【Android数据存储】- File
个人学习整理.如有不足之处,请不吝不吝赐教. 转载请注明:@CSU-Max 读写本应用程序数据目录中的文件 此种方法读写的文件在/data/data/<应用程序包名>中 ...
- smartfoxserver扩展里面过滤聊天的不合法字符
http://blog.csdn.net/yc7369/article/details/35567105 近期做手游客户要求加上一个聊天功能.事实上嘛,个人认为这个聊天功能比較鸡肋,这部分差点儿已经有 ...
- 抓包工具Fiddler使用宝典之捕获手机报文
Fiddler 是通过代理来实现数据捕获的.对 Android 手机来说,也是通过将网络连接的代理指向 PC 机的 Fiddler port.来实现数据包的拦截. 以下,我以我的一次实践为例,向大家介 ...
- Codeforces466C Number of Ways
题目链接: http://codeforces.com/problemset/problem/466/C 题意: 给一个长度为n的数组,将其分成连续的三段使三段的和相等.求有几种这种组合 分析: 从头 ...