swift 学习总结
1.for 循环
for i in 0...5
{
print(i);
}
2.class 和 struct
struct Person{
var age:Int = 24;
}
let person1 = Person();
var person2 = person1; //怎么就是深拷贝呢
person2.age = 30;
print("person1.age=\(person1.age)---person2.age=\(person2.age)");
// person1.age=24---person2.age=30
注释:struct 定义的对象 指针重新赋值是深拷贝
3.
var thing = "cars";
let closure = {[thing] in
print("I love \(thing)")
}
thing = "airplanes"
closure()
//输出 I love cars
3.UNIT8 UINT16 UINT32 UINT64 最大值,最小值各是多少
//分别对应1个字节 2个字节 4个字节 8个字节
//2^8 -1 = (-255~+255) 2^16 - 1 = (-65025 ~+65025) ....
4.private fileprivate public Open internal 的作用和区别
1> private
只允许在当前类中调用,不包括 Extension
private 现在变为了真正的私有访问控制
用 private 修饰的方法不可以被代码域之外的地方访问
2> fileprivate
fileprivate 其实就是过去的 private。
其修饰的属性或者方法只能在当前的 Swift 源文件里可以访问。
即在同一个文件中,所有的 fileprivate 方法属性都是可以访问到的
3>public
修饰的属性或者方法可以在其他作用域被访问
但不能在重载 override 中被访问
也不能在继承方法中的 Extension 中被访问
4>Open
open 其实就是过去的 public,过去 public 有两个作用:
修饰的属性或者方法可以在其他作用域被访问
修饰的属性或者方法可以在其他作用域被继承或重载 override
5> internal
internal是内部的意思,即有着internal访问权限的属性和方法说明在模块内部可以访问,超出模块内部就不可被访问了。在Swift中默认就是internal的访问权限。
从高到低排序如下: open > public > interal > fileprivate > private
参考:https://blog.csdn.net/Mazy_ma/article/details/70135990
5.map和flatMap
//map函数里面可以直接使用函数作为参数,这里采用函数的方式。
let numberArray = [1,2,3,4,5]
func fmap(a : Int) -> Int{
return a + 10
}
//1.函数调用方式
let result = numberArray.map(fmap)
print(result)
//2.采用闭包的方式
let result = numberArray.map({($0) + 10})
print(result)
//3.flatMap的使用
let resultArray = numberArray.flatMap({["\($0)个","\($0 )只"]})
print(resultArray)
//输出结果:["1个", "1只", "2个", "2只", "3个", "3只", "4个", "4只", "5个", "5只"]
6.filter 的使用
//原来的方式
var filteredArray : [Int] = []
for number in numberArray {
if number > 2 {
filteredArray.append(number)
}
}
print(filteredArray)
//使用filter 实现
filteredArray = numberArray.filter({$0 > 2})
print(filteredArray)
7.reduce
8.swift和oc 的核心
swift 是面相协议编程 OC面向对象编程
9.class和struct的区别
1.class 是引用类型,struct是值类型
2.class 可以继承,struct 不可以继承
3.struct 类型方法要加static 修饰,class类型方法加class 修饰
4.struct 有默认的初始化方法,class需要制定变量的初始值