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、函数访问级别不能高于它的参数或者返回类型的访问级别。