美文网首页
1.2 类型

1.2 类型

作者: LucXion | 来源:发表于2020-05-22 10:39 被阅读0次

    整型

    无符号整型:进入源码,可以发现这些类型都是以结构体来实现的
    var UintMax = UInt.max//64位操作系统下为64位,32位操作系统下为32位
    var Uint8Max = UInt8.max
    var Uint16Max = UInt16.max
    var Uint32Max = UInt32.max
    var Uint64Max = UInt64.max
    print(UintMax,Uint8Max,Uint16Max,Uint32Max,Uint64Max)
    //18446744073709551615 255 65535 4294967295 18446744073709551615
    var size = MemoryLayout<UInt8>.size;// 类型所占字节数
    有符号整型
    var maxInt8 = Int8.max     //127
    var mimInt8 = Int8.min    //-128
    var maxInt16 = Int16.max  //32767
    var minInt16 = Int16.min  //-32768
    var maxInt32 = Int32.max  //2147483647
    var minInt32 = Int32.min  //-2147483648
    var maxInt64 = Int64.max  //9223372036854775807
    var minInt64 = Int64.min  //-9223372036854775808
    var intSize = sizeof(Int)    //8位
    

    浮点类型

    // 浮点类型,支持科学计数法
    var sum = 1.25e3 //1.25*(10^3) = 1250
    var sun2 = 0x1p3 //1*(2^3) = 8   // 16进制
    // 浮点类型支持下划线填充增加可读性
    var num1 = 001.23      //1.23
    var num2 = 1_000        //1000
    var num3 = 1_000.1_001  //1000.1001
    

    布尔类型bool

    Swift语言的Bool类型十分严格,只有true和false两种值,分别表示真和假。同样,在Swift语言的条件语句以及需要进行逻辑判断的语句中,所使用的条件表达式的值也必须为Bool类型。
    var bool1 = true   //创建布尔真变量    
    var bool2 = false  //创建布尔假变量
    

    元组类型:可以创建出任意数据类型组合的自定义数据类型

    // 元组
    // 指定参数名的结构   变量名:(属性1:1数据类型,属性2:2数据类型)
    var person:(name:String,age:Int) = ("李晓华",19)// 初始化
    person.name = "黎明"// 赋值
    person.age = 32
    var name = person.name //name = 黎明  // 取值
    // 不指定参数名的元组结构
    var car:(String,Int) = ("奔驰",200000) // 初始化
    car.0 = "红旗"// 赋值
    var carName = car.0 // 取值
    var carPrice = car.1
    //元组的分解
    //var (theCar,thePrice) = car //一一对应
    var (theCar,_) = car // 对不需要的参数进行匿名  _又为匿名标识符
    //提示:元组适用于简单的数据类型,复杂的类型建议还是适用结构体或者类来实现
    

    可选值类型:对数值为空进行了严密的把控
    Swift语言是一种十分强调类型安全的语言, 在Swift语言中普通的类型是不允许为nil的,当然也就不可以与nil进行比较运算,这种机制极大地减小了代码的不可控性,如果一个变量在逻辑上可能为nil,则开发者需要将其包装为Optional类型

    var obj:String? // 声明普通类型变量后不进行初始化就可能使用的时候,需要对变量进行Optional包装,否则会报错
    if obj == nil {
    }
    Optional类型的正确使用步骤包含了判断、拆包、绑定拆包后的值到临时常量3个过程
    var obj:String? = "HS"
    if obj != nil {
        obj!
    }
    也可以使用if let语句对这个过程进行简化
    var obj:String? // Optional类型
    var name:String // String类型
    if let temp = obj { // 临时变量temp
        name = temp // temp为解包后的值
    }else {
        obj = "123";
        name = obj!// Optional类型需要解包才能赋值给基本类型
    }
    print(name)
    也可以使用if let同时对多个可选值解包并附加其他判断条件
    var big:Int? = 2;
    var small:Int? = 1;
    if let temp1 = big,let temp2 = small,temp1 > temp2 {
        print(temp1,temp2);
    }else {
        big = 2;
        small = 1;
    }
    

    为类别去别名

    typealias P = Int
    

    相关文章

      网友评论

          本文标题:1.2 类型

          本文链接:https://www.haomeiwen.com/subject/ctzfahtx.html