swift 高级用法
来源:互联网 发布:usb3.0端口电压 编辑:程序博客网 时间:2024/05/18 09:10
// 高级用法 (面试)// 可选类型 值绑定(可选类型结合 if-else 使用), 都要定义局部变量var bindingOptional:Int!// local生命周期 - if 结束// * 局部变量后面必须是可选类型, 其实判断的是可选类型是否为空, 当为空时,直接走 else, 都有值时,走 if,顺便完成局部变量的赋值,方便我们在 if 花括号中对局部变量的使用if var local = bindingOptional { print("local = \(local)")} else { print("值为空")}// switch - case// 1.switch 中, 功能更强大// 2.默认没有贯穿, fallthrough关键词为贯穿下面的内容, 就是在得到要的值后面还会输出下面的内容var switchNumber = 5// case 一定包含所有的情况, 如果情况不能都写完, 就用 default 代替switch switchNumber {case 0,1,2,3,4: print("小于5") fallthroughcase 6...100: print("大于5小于100") fallthroughcase 5: print("5") fallthroughdefault: print("others")}// 高级用法(面试)// switch - case 值绑定// 把一个作为判断条件, 一个作为局部变量接受值// 利用系统的推断var (x,y) = (10, 0)switch (x,y) {case (var xValue, 0): print("xValue = \(xValue)")case (0,var yValue): print("yValue = \(yValue)")default: print("位于坐标系内")}// 循环for var i = 0; i < 10; i++ { print("i = \(i)")}// for - in循环for i in 1...10 { print("i = \(i)")}// while 循环var whileNumber = 0while whileNumber < 10 { print("whileNumber = \(whileNumber)") whileNumber++}// repeat - while 循环// 先执行, 后判断repeat { print("我能行")} while false// 标签语句// 应用场景: 循环嵌套// 准确的取消哪一个循环, 想取消哪一个循环, 就该哪一个循环取个标签joner: while true { for var i = 0; i < 50; i++ { print("i == \(i)") if i == 5 { break joner } }}// 枚举// 还是值类型enum Person { case Shaoqiong case Xiaoze case Bowen}print(Person.Bowen.hashValue)// ***开发中// 原始值// 指定枚举值的类型 Intenum Fruit:Int { case Apple case Banana case Orange}// 原始值, rawValue 就是原始值print(Fruit.Orange.rawValue)// 函数, 是一个引用类型// 函数其实就是OC当中的方法// 定义函数使用 func// 1.没返回值, 没参数// 注意:()里卖写的是参数列表, ->代表返回值// 函数的类型包括参数类型和返回值类型// eg.()->Void 整体是一个类型// 书写时:->Void 可以省func printStr()->Void { print("hello world")}// 函数调用printStr()// 2.没返回值, 有参数// (String)->Void为函数类型func printPersonName(name:String) { print("name = \(name)")}// 调用printPersonName("gangyun")// *常量var jonerFunc :(String)->Void = printPersonName// 调用 jonerFuncjonerFunc("qiong")// *多个参数func printPersonInfo(name:String,age:Int) { print("name = \(name), age = \(age)")}printPersonInfo("joner", age: 23)// 3.有返回值, 无参数// 4.有返回值, 有参数// 函数类型 (String)->Stringfunc returnPersonName(name:String) ->String { return name}var returnName = returnPersonName("joner")print("returnName = \(returnName)")// 多个参数多个返回值, 借助元祖// (String,Int,Float)->(String,Int,Float)为函数类型func returnPersonInfo(name:String,age:Int, height:Float) ->(String,Int,Float) { return (name,age, height)}// 接受:var (name,shaoqiongAge,height) = returnPersonInfo("shaoqiong", age: 19, height: 160.0)print("name = \(name),shaoqiongAge = \(shaoqiongAge),height = \(height)")// *使用函数的注意事项// 1.参数在默认情况下是 let 类型, 是不能改变的,想改变的话,参数必须使用 var 修饰func changeBottleHeight(var height:Float) { // 高度的改变 height += 49}// 2.// 封装交换两个值得函数, 想改变-用地址(加&, 关键字- inout), 因为其为值传递//当想要函数的交换, 影响外部值的时候, 变量的关键字-形参的关键字用 inout(输入输出关键字)func swapTwoNumber( inout a:Int, inout b:Int) { // let tmp:Int = a; var tmp:Int = 0 tmp = a a = b b = tmp}var aa = 49,bb = 94swapTwoNumber(&aa, b: &bb)print("aa = \(aa),bb = \(bb)")
0 0
- swift 高级用法
- swift enum高级用法
- swift中switch的高级用法
- Swift 中枚举高级用法及实践
- Swift 中枚举高级用法及实践
- Swift 中枚举高级用法及实践
- Swift高级
- swift详解之十七-----------GCD的一些高级用法
- Swift 元组高级用法和最佳实践
- swift课程 02 swift高级
- Swift编程高级教程
- Swift 高级运算符
- Swift-高级运算符
- 28.swift高级
- Swift学习笔记(二十八)——Switch-Case的高级用法
- swift详解之二十九------谈谈debug的一些高级用法lldb
- 高级用法
- 24.Swift-高级运算符
- IE8下submit表单没反应
- 算法面试题
- TOEFL(20151205)分析
- iOS数据库之FMDB
- 1. Memcached 介绍
- swift 高级用法
- PHP数据加密技术之一---CRYPT()加密
- c++动态联编与静态联编
- hdoj5167Fibonacci【map记录记忆化搜索】
- HDU 5637:Transform
- EF IN 查询等效语句
- 解析html语句的JS事件
- BestCoder Round #74 HDU 5638 Topsort
- spakr 性能优化:钨丝计划内幕