swift 学习总结

2018-08-12  本文已影响26人  欧辰_OSR

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需要制定变量的初始值

上一篇 下一篇

猜你喜欢

热点阅读