Swift 相关

OC与Swift的区别

Swift:容易阅读,结构简单,文件没有了.h.m,类型安全,速度快,运行性能高

swift是oc上提出的,有oc没有的类,如:元组,有泛型

swift定义的常量与变量是没有值的,所以引入了optional可选概念,若没有值,就用optional,比OC中指针设为nil安全

swift的?和!用来标记变量是否可选,!表示可选变量必须保证转换能够成功,?转换不成功不报错,会设为nil,如果转化成功要使用该变量需要后面加!修饰。

swift let声明的常量不可变,var声明的变量可以改变

swift中继承里写final防止被重写,as类型的转换

OC:OC动态性语言,将数据类型的确定由编译时推迟到运行时,swift是静态行语言OC与Swift的区别

Swift:容易阅读,结构简单,文件没有了.h.m,类型安全,速度快,运行性能高

swift是oc上提出的,有oc没有的类,如:元组,有泛型

swift定义的常量与变量是没有值的,所以引入了optional可选概念,若没有值,就用optional,比OC中指针设为nil安全

swift的?和!用来标记变量是否可选,!表示可选变量必须保证转换能够成功,?转换不成功不报错,会设为nil,如果转化成功要使用该变量需要后面加!修饰。

swift let声明的常量不可变,var声明的变量可以改变

swift中继承里写final防止被重写,as类型的转换

OC:OC动态性语言,将数据类型的确定由编译时推迟到运行时,swift是静态行语言


Swift

一、初识

1.不用编写main函数,;号,可以自动推断出变量常量的类型

2.常量只能赋值一次,不要求立即赋值,但使用前必须赋值

3.标识符:不能数字开头,不能包含空白字符,制表符,箭头等特殊字符

4.数据类型:

 值类型:枚举(enum):optional

              结构体(struct):Bool,Int,Float,Double,Character,String,Array,Dictionary,Set

 引用类型:类(class)

5.元组(tuple) _可忽略某个值

 let error = (404, "Not Found")

 error.0

 error.1


二、

1.if else 条件只能是Bool类型,

2.swift3后 ++ --运算已去掉

  for循环内i++使用闭区间运算符替换 

   a...b 相当于 a<=i<=b  a..

3.switch 使用fallthrough可贯穿条件

4.where可以过滤条件

5.函数 

return可以省略,隐式返回

  func pi(v1,v2) —>Double {

     v1+v2

  }

参数标签 at (_可省略标签)

 func work(at time:String) {

  //time 内部使用

 }

work(at:"08:00") //at 外部使用

默认参数值

func check(name: String = "LiLei", age: Int, job: String = "none") {}

check(age: 15)

一个函数最多只能有一个可变参数

6.print 自带参数 func  print(items,separator:String = “ ”,terminator:String = “\n”)//(间隔) (换行)

7.inout函数 在函数内部修改外部参数 (注:inout不能标记可变参数,不能有默认值,本质是地址传递,参数必须可以多次被赋值)

int number = 10

func add(_ num: inout Int) { //inout

   num = 20 

}

add(&number) //&

8.swap函数 用来交换两个变量

9.函数重载

函数名相同,参数的个数 || 类型 || 标签 不同,与返回值类型无关

10.内敛函数

开启编译器优化(release模式默认开启),编译器自动将某些函数编程内敛函数

func test() {

 print("hell world")

}

test()

 编译器变为 print("hell world")

不会变内联函数的:函数体太长;包含递归调用;包含动态派发。

11.函数类型

由形式参数类型、返回值类型组成

func test() {} //()—>Void  或者 ()—> ()

fun sum(a: Int , b:Int) —> Int {}  //(Int,Int)—> Int


三、汇编

 lea 地址传递

 call 函数调用

 mov 地址移动

()取出地址内的值

 %后跟的是寄存器

你可能感兴趣的:(Swift 相关)