20161104
总结一下swift的一些特性:
1.不可变性
let关键字声明的都是不可变的,不像OC中对象的值可以通过引用对象被改变。
要理解值类型的概念,值类型是稳定的。
2. 类型安全
不可隐式转换
3.optional的使用,判断对象是否为nil
4.函数式API
map filter
方法是跟类相关的,依赖于类,或者一些类中别的参数影响。
5.返回类型有可选,元组,或者返回一个函数
可以嵌套函数
上面的总结参考Objc中国swift系列文章 https://objccn.io/issues/
上个月给自己定了一个目标,用swift完成一个当前项目里的页面。
之前swift刚出来的时候看过一点,现在swift3.0了,相当于重新开始学。先看了一遍3.0翻译的文档。
https://www.cnswift.org/边看可以自己新建一个playground写代码测试。
然后就开始写demo,遇到不会的再回头来查找文档。
遇到的问题:
1.数组:
var testarr4:[Int]=[1,2,3,4,5];
var testarr5=testarr4;
address(o: testarr4)
address(o: testarr5) //这两个打印数据是一样的
testarr5[2]=0;
//testarr4的地址不变,testarr5的地址改变了
print("testarr4:\(testarr4)\n testarr5:\(testarr5) \n ");
//执行结果:
/*
testarr4:[1,2,3,4,5]
testarr5:[1,0)"> */
这一点跟OC是不同的,OC里指针指向的是一块内存。swift里,当数组改变的时候会自动的拷贝一份。而且也不需要用NSMutableArray来限制数组可变,let和var区别就可以。
open func copyItem(atPath srcPath: String,toPath dstPath: String) throws