函数类方法的使用(optional语法)

可选类型(Optional)语法:

  1. 如果j为空,将c赋值为123,否则将j的值赋c:
    var c = j ?? 123
  2. 用!和?定义的区别:
    Int? :必须使用!拆包(取值)
    Int!:自动拆包取值

当一个类没有创建构造函数时,编译器自动生成一个无参构造函数;一旦创建自定义构造函数,编译器将不会再自动生成无参构造函数。

class与结构体的区别:

  1. 用let定义的结构体变量,成员不能修改
  2. 结构体是值类型的,在赋值的时候会发生复制
  3. 类是引用类型
  4. 结构体的成员方法需要加mutating才能修改成员变量,类科研直接修改

strong/weak:

  1. strong是强引用,当一个的强引用个数大于0时,对象不会被销毁
  2. 变量默认都是strong类型
  3. weak定义的变量一定是optional类型(隐藏)

类变量使用static定义,通过类名调用:

class Animal { 
//成员变量
var name: Stringvar age: UInt 
//定义类变量static var count = 0
} 
..........
//调用类变量
Animal.count = 123

类方法使用class定义,通过类名调用:

//定义类方法

class func createAnimal() -> Animal {
        return Animal() 
} 
//调用类方法
Animal.createAnimal()

你可能感兴趣的:(函数类方法的使用(optional语法))