Swift语法总结补充(一)
Swift基础语法学习总结
Swift高级语法学习总结
Swift语法总结补充(一)
1. 可选类型是一种类型,String?就是Optional<String>,所以函数参数也可以声明为它
2. a??b??c 如果a有值返回a,a为nil返回b,b也也为nil,前面的整体结果就是nil返回c.条件是??前面的都必须是optional的,??后面的类型必须和??前面的一致,结果等价于三目运算符a!=nil?a!:b
3. 遵从GeneratorType协议的对象有一个next方法可以用来遍历,你可以自定义generator遵循generatorType协议,自己就可以根据这个方法做循环,你在next方法中写好遍历的顺序就好.
4. 遵从SequenceType协议的对象可以用for in来循环,每个SequenceType对象里面包含对应着一个generator,也可以获取generator后做while循环,也可以直接写for in循环,for in出来每项的值就是generator中next方法的返回值
5. 区间运算符...和..<其实是Range<T>类型的对象,这个对象有一个generate方法,返回的是RangeGenerator<T>类型结构体,它遵循GeneratorType协议,所以...和..< 也能做for in 循环
6. 数组过滤方法可以用闭包,如:oldArray.filter{ $0 > 30 },数组还有个根据数组值计算的的方法,oldArray.reduce(1,combine: {$0 + $1}) 结果就是1和数组中的每个元素相加
7. Int和string都有map方法,someName.map{name in "Hello,\(name)"}??"Hello world!" name是个可选类型,你不需要做可选绑定,如fil果name是nil,这个map方法返回的值也是nil
8. 函数的柯里化就是多参函数变成一个参数调用的返回值是函数,再调用的这个函数传入第二个参数,这中间得到的函数叫外部这个函数的偏函数,函数柯里化只需要把函数的多个参数分别写在不同的括号里就可以了
9. 在类命名访问成员方法,得到的是一个可以函数柯里化的函数,第一个参数是类对应的对象,后面的参数就是这个函数应该有的参数
10. swift的枚举可以有相关值(就是传参),有相关值的两个枚举值不能用==比较,需要自己重载==运算符,而普通的枚举是可以通过==比较的
11. 枚举是可以有原始值的(默认值),可以是String,Character,Int,Float类型的,如果是Int后面的枚举会递增,通过rowValue可以获取到原始值
12. 由于swift初始化方法的安全检查太严格,在设置类似于数据源数组的时候可以用lazy 声明,并用闭包返回值
13. Any表示任何类型除了方法类型,AnyObject表示任何class类型的实例
14. 在协议前加@objc表示协议可选,它只对class有效;在方法和属性前加optional表示属性和方法可选protocol<SomeProtocol,AnotherProtocol>就可以表示遵循这两个协议的对象
Swift语法总结补充(一)的更多相关文章
- ios -- 教你如何轻松学习Swift语法(一)
目前随着公司开发模式的变更,swift也显得越发重要,相对来说,swift语言更加简洁,严谨.但对于我来说,感觉swift细节的处理很繁琐,可能是还没适应的缘故吧.基本每写一句代码,都要对变量的数据类 ...
- Swift语法入门
正文参考: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Progra ...
- ios -- 教你如何轻松学习Swift语法(三) 完结篇
前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦. 一.自动引用计数 1.自动引用计数工作机制 1.1 swift和o ...
- ios -- 教你如何轻松学习Swift语法(二)
前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦. 一.可选类型(重点内容) 1.什么是可选类型? 1.1在OC开 ...
- Swift翻译之-Swift语法入门 Swift语法介绍
目录[-] Hello world - Swift 简单赋值 控制流 函数与闭包 对象和类 枚举与结构 协议和扩展 泛型 2014.6.3日,苹果公布最新编程语言Swift,Swift是一种新的编程语 ...
- Swift语法
Swift语法 标签(空格分隔): Swift 1.打印输出语句 println("Hello, Swift!") 注意每行代码后面无需添加分号作为结束 2.简单值 let---常 ...
- swift 语法 - 以及学习资料
附上一些swift的一下学习资料: 1.Swift语法介绍官方英文版:The Swift Programming Language 2.Swift与Objective-C相互调用Using Swift ...
- Swift语法之 ---- ?和!区别
1.常量和变量 Swift语言中是用let来定义常量,并且要初始化.var来定义变量,在let或者var后面申明类型,冒号+空格,然后再加上类型名称. 2.optional(可选)变量 可选变量用于处 ...
- Swift语法基础入门三(函数, 闭包)
Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...
随机推荐
- Socket get http request
package wuyubao.firstsample; import java.io.BufferedReader; import java.io.IOException; import java. ...
- sql 存储过程参数是表类型,数据库中如何调用
DECLARE @NEW_STUDENT as [CancelLendersContent] INSERT @NEW_STUDENT VALUES (0,0,0,'12345678912','张三', ...
- 夺命雷公狗---微信开发57----微网站之jquery_mobile之入门案例
这节课我们主要用到到jquery_mobile来实现一个点电影播放网站 jquery_mobile(简称JQM)其实就是基于jquery开发出来的一套移动端框架,适应移动用户端市场对浏览与体验从而进一 ...
- MyEclipse启动失败
日志的一部分: !SESSION 2014-09-24 11:47:03.156 -----------------------------------------------eclipse.buil ...
- 二招解决php乱码问题
PHP的乱码问题已经说了N+1遍了,但还是经常看到新手不知道该如何解决php乱码问题,在此本人再重新给总结一下,希望对新手有点帮助 php网页出现乱码一般是在建立数据库时用的编码和php网页的编码不同 ...
- 使用uiautomatorviewer和uiautomator来做android的UI测试
来自:http://university.utest.com 作者:Angelos Nakulas (All Authored Courses) 译者:Elaine00 目录 简介 什 ...
- UINavigationController(转)
UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的AP ...
- JVM复习笔记
1. JVM是什么? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...
- 爱普生 RS330 打印机墨水连供装置墨盒吸墨复位方法
芯片复位方法: 先按充墨键(墨水灯按键),一下一下按,把墨车按停到右侧换墨盒的位置为止(就是右侧框框正中位置), 全程带电操作,停到换墨盒的位置后再按住芯片复位键(墨盒芯片上面白色的小按键)5秒以上再 ...
- top.location.href和localtion.href有什么不同
top.location.href=”url” 在顶层页面打开url(跳出框架) self.location.href=”url” 仅在本页面打开url地址 pare ...