总结swift2.0 到swift3.0 语法等变更
最近开发完OC的项目,开始搞Swift ,2016年从开发OSX应用 到OC应用 再回归到Swift,回头看已经到Swift3.0了。之前在开发Swift的时候还在1.2 到2.0的切换中。
下面给自己总结一下变化:
1. 监听方法: swift 3.0 -> #selector 如果带参数,不需要使用“:” swift2.0 -> "" OC -> @selector eg: button.addTarget(self, action: #selector(click), for: .touchUpInside)
2. OC -> __FUNCTION__ swift3.0 -> #function
3. swift3.0 -> 设置color 可以直接 color 之后回车,选择需要的颜色,或者修改颜色。 显示如下:本质代码如下: eg: testView.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
4.Swift3.0 将大量的Class 转化为Struct,不存在基本类型,都是结构体。
eg:public struct Double {
5. 可选项:Optional 变量可以有指定类型的值,也可以是nil, nil 不是任何数据类型,不能参与计算。 ! 强行解包。 从可选之中强行获取对应的非空值,如果值为nil ,就会奔溃。 var 的可选值 默认为nil let 的可选值 没有默认值
6. ?? 是个三目运算 如果有值,使用值 如果没有值,使用?? 后面的值替代
/****** 7. Switch 1.可以针对任意类型的值进行分支,不再局限于整数。 2.switch 一般不需要 break 3.switch 如果要多值,使用“,”
4.所有的分支至少需要一条指令,如果什么都没有操作,使用break
5.case 条件中可以使用where 语句 ***/ func demoSwitch1(str: String) -> String { switch str { case "demo": print(str) return str case "ceshi","Ceishi": print(str) return str case "ni": print(str) return str case "hao": print(str) return str default: print("没有匹配到值") return "没有匹配到值" } }
/** 8. For 循环 1.传统的for 循环,在swift3.0中被取消 2.i++ ++i从swift3.0被取消 使用i += 1 3.在使用过程中要注意空格的使用。 4.for 循环 反转使用reversed() **/ func forDemo1() { for i in 0..<10 { print(i) } print("------------") for i in 0...10 { print(i) } //for 循环 反转 for j in (10...30).reversed() { print(j) } }
/** 9. 字符串 1. 长度lengthOfBytes() 方法,返回的是字节数量。UTF8中,每个汉字是3个字节。 2. .characters.count 返回字符的个数。 3. 使用NSSting 中转获得长度 **/ func demoStr1(str: String) { let string = "测试String的 循环遍历" print(string.lengthOfBytes(using: .utf8)) //28 print("字符的个数是:",string.characters.count) //14 for c in string.characters { print("****",c) } print((string as NSString).length) //14 }
如果错过了一天,那么真的就错过一天。不抛弃,不放弃。点一盏心灯给自己。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现