枚举、结构体、类

1、枚举:

  enum 枚举名 : 初始值类型,可以是 字符、字符串、整数、浮点

  {

    枚举定义

  }

例如:

enum WeekDays {

  case Monday

  case Tuesday

  case Wednessday

  case Thursday

  case Friday

}

备注:在Swify 中 如果用switch 使用枚举时间,case 必须全面包含枚举。

枚举中可以使用 .toRaw() 转换出初始值,例如 枚举某一个值等于4 不能直接 判断=="4",需要通过 .toRaw()="4"

2、引用类型

只有类是引用类型,其他类型都是 值类型包括字符串String。 引用类型比较 === 恒等于 !== 不恒等于 ,值类型比较 == 等于 != 不等于

3、可选类型 与 可选链

//可选类型 与 可选链

 

public func Divide(n1:Int,n2 :Int)->Double?{  //当前返回类型为?号表示 返回值可以为空既 nil

    if(n2==0){

        return nil

    }else{

        return Double(n1) / Double(n2)

    }

}

 

// 调用

public func DividePrintA(){

    // 1、这种可选类型在if或者while语句中赋值并进行判断 的写法,叫做可选绑定

    if let result : Double? = Divide(10, 2){

        println("成功")

    }else{

        println("失败")

    }

    //2、强制拆分:如果我们确定可选类型一定有值,那么在读取它的时候,可以在可选类型的后面加一个感叹号来获取该值。

    let result2 : Double? = Divide(200, 10)

    println(result2!)

    

    // 隐式拆分

    let result3 : Double! = Divide(200, 10)

    println(result3)

}

 

 

/// 可选链

 

 

// employee 员工

class Employee{

    var no :Int=0

    var name :String = "Tony"

    var job :String?

   // var dep : Department = Department()

    var dep : Department?

}

 

// Department 部门

class Department{

    var no :Int=10

    var name : String = "DEV"

    //var comp : Company = Company()

    var comp : Company?

    

}

//  company 公司

class Company{

    var no :Int=120

    var name :String = "LAN"

}

 

class SwiftDemoClassModel {

    // 方法1

    func DemoFuncA(strA :Int,strB : Int)->Int{

        return strA + strB

    }

    

    func Add(){

        var employee=Employee()

        println( employee.dep?.comp?.name ) // 采用?选择可选

    }

    

}

// 访问级别

public 、internal、private

1、public 可以访问自己模块的任何public实体(实体包含类、结构体、枚举、变量、常量、下标、元组、函数、属性)。如果使用import 语句引入其他模块,我们可以访问其他模块中public 实体。模块指一个应用程序或者一个框架。

2、internal 只能访问自己模块中的任何internal 实体,不能访问其他模块中的internal,internal可以省略,因为默认访问级别是internal

3、private 只能在当前源文件中使用的实体,成为私有实体。使用private 可以用作隐藏某些功能的实现细节。

备注: 统一原则:1、如果一个类、结构体、枚举 定义为 internal、private 那么声明的变量或者常量不能是 public。2、函数访问级别不能高于它的参数或者返回类型的访问级别。

 

posted @ 2015-04-12 12:39  碧水晴天  阅读(261)  评论(0编辑  收藏  举报