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语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...
随机推荐
- C#.Net GC(garbage Collector) 垃圾回收器
以前一直以为gc的原理很简单,也就是分代处理堆数据,直到我的膝盖中了一箭(好吧 直到有天汪涛和我说他面试携程的面试题 关于服务器和 工作站gc 的区别)其实我当时尚不知道 工作站和服务器有什么区别更不 ...
- sql查询 所有被锁定的表
--sql查询 所有被锁定的表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName ...
- IUS通过PLI产生fsdb波形
IUS通过PLI接口来调用系统函数,产生fsdb波形,再由verdi来debug. 要调用fsdbDumpfile和fsdbDumpvars,需要在testcase的shell(或.cshrc等)中设 ...
- java 操作excel 文件
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...
- linux中模块的相关操作
/lib/modules/[kernel版本]/modules.dep 这个文件记录了模块的依赖关系 modprobe 和 insmod 这两个命令都可以加载模块,但是modeprobe会自动分析模块 ...
- C语言初学者代码中的常见错误与瑕疵(3)
问题: n-1位数字 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数. 输入: 第一行为M,表示测试数据组数. 接下来M行,每行包含一个测 ...
- 创建数据库和表的SQL语句【转】
创建数据库和表的SQL语句 转至http://www.cnblogs.com/philanthr/archive/2011/08/09/2132398.html 创建数据库的SQL语句: 1 crea ...
- c#使用word、excel、pdf ——转
一.C# Word操作引入Word COM组件菜单=>项目=>添加引用=>COM=>Microsoft Word 11.0 Object Libraryusing Word = ...
- js获取事件源
js获取事件源: 1. event.srcElement.nodeName //获取事件源对象,但是火狐不支持event 2.
- 霸气的jQ插件
http://codepen.io/ canvas的各种实例 1.The Responsive jQuery Content Slider http://bxslider.com/ 2.ThemePu ...