zoukankan      html  css  js  c++  java
  • Welcome to Swift (苹果官方Swift文档初译与注解十)---63~69页(第二章)

      如果你将整型与浮点型一起使用,结果将被认为是Double类型:

         et anotherPi = 3 + 0.14159

        // anotherPi 的类型是Double

      上述代码中,3的值是没有明确说明类型,因此,根据剩余部分的浮点类型可以确定返回值为Double.

    Numeric Literals (数值的进制表示)

      整数类型可以进行如下表示:

    • A decimal number, with no prefix         // 十进制数值,不需要前缀符号;
    • A binary number, with a 0b prefix         // 二进制数值,使用0b前缀;
    • An octal number, with a 0o prefix          // 八进制数值,使用0o前缀;
    • A hexadecimal number, with a 0x prefix    //十六进制使用0x前缀;

      下面代码中,所有的整型值都是十进制的17:

        let decimalInteger = 17

        let binaryInteger = 0b10001       // 17 in binary notation

        let octalInteger = 0o21           // 17 in octal notation

        et hexadecimalInteger = 0x11     // 17 in hexadecimal notation”

       浮点类型的可以是十进制或者十六进制.在十进制的小数点两边必须都要有值;浮点类型也可以使用指数形式,在十进制中,指数使用大写或者小写的e表示,在十六进制中,使用大写或  者小写的p表示.

      对十进制来说,使用指数exp,表示这个数值乘以10的exp次幂

        1.25e2 means 1.25 × 102, or 125.0.

        1.25e-2 means 1.25 × 10-2, or 0.0125.

      对于十六进制数使用指数exp,表示这个数值乘以2的exp次幂

        0xFp2 means 15 × 22, or 60.0.

        0xFp-2 means 15 × 2-2, or 3.75.

      下面代码中,所有的值都是十进制的12.1875:

        let decimalDouble = 12.1875

        let exponentDouble = 1.21875e1

        let hexadecimalDouble = 0xC.3p0

      数值的表示都可以使用扩展格式来使他们更具有可读性.整型和浮点型都可以增加0和下划线来帮助提高可读性.扩展格式不会改变数值的类型:

        let paddedDouble = 000123.456

        let oneMillion = 1_000_000

        let justOverOneMillion = 1_000_000.000_000_1

    Numeric Type Conversion (数值类型转换)

       在代码中,定义整型常量和整型变量,Int是通用性比较好的,即便你使用的值是非负数.使用Int这种默认的类型意味着你的代码可以快速的匹配整数值的类型.

       只有当你确切的需要处理某种数值整型的时候,才推荐使用你指定的类型,因为Int类型可以自动适应扩展数据,有利于性能,内存使用和效率.

    Integer Conversion (整型转换)

      不同整型数值类型的常量或变量,它们的数值有效范围是不同的.Int8类型的常量或变量,数值的范围是-128到127,UInt8类型的常量或变量,数值的范围是0到255.当数值超出常量  或变量能够存储的数值范围时,代码在编译的时候会报错:

        let cannotBeNegative: UInt8 = -1

        // UInt8 类型不能存储负数,因此会报错

        let tooBig: Int8 = Int8.max + 1

        // Int8 类型不能存储超过最大值的数,

        // 因此这行代码会报错.

      由于每种数值的类型可以存储不同的取值范围,所以你必须有所选择的进行值的类型转换.

      转换数值类型可以在初始化新值的时候使用一个已经定义过的数值.在下面的代码样例中,常量 twoThousand i的类型是UInt16,而常量one是类型UInt8,他们不可以直接进行相加运   算,因为它们不是相同的类型.然而代码中使用UInt16(one)创建一个新的UInt16类型值来替代原来的类型值.

        let twoThousand: UInt16 = 2_000

        let one: UInt8 = 1

        let twoThousandAndOne = twoThousand + UInt16(one)

      这样在加号的两边数值类型都是UInt16,因此是可以进行运算的.常量 (twoThousandAndOne)的类型将会是UInt16,因为相加的两个数值是UInt16类型.

      在Swift中,默认的类型初始化是使用 SomeType(ofInitialValue) 来传递一个初始值.上面的代码例子中,UInt16可以接收Uint8类型的值,因此可以使用已经定义的UInt8类型值来产生一  个新的UInt16的类型值.不可以使用任意的其他类型.

    Integer and Floating-Point Conversion (整型和浮点型转换)

      整型数值与浮点数值之间的转换必须进行明确的声明:

      let three = 3

      let pointOneFourOneFiveNine = 0.14159

      let pi = Double(three) + pointOneFourOneFiveNine

      // pi equals 3.14159, and is inferred to be of type Double

      代码中 Double(three) 使用常量three的值来创建一个新的Double类型的值,因此加号两边的数值类型相同,可以进行运算.如果不进行转换,运算是不能执行的.

      从浮点类型装整数类型,也是与上面一样.整型数值可以使用Double或者Float类型的值来进行初始化:

        let integerPi = Int(pi)

        // integerPi 等于 3, 类型是Int

      浮点类值型转整型值,会被去掉小数部分.例如,4.75转整型是4;-3.9转换整型后是-3.

      注意点

      数值常量或变量的使用与数值型文本是不同的. 数值文本类型的3可以直接与数值文本类型0.14159相加,因为数值文本本身没有明显的类型声明.它们的类型只在编译处理的时候确定.

     

  • 相关阅读:
    [转]VirtualBox错误 Unable to load R3 module 解决方案
    2014工作感想
    人生的真正价值
    react生成二维码
    判断对象中是否包含某个属性
    使用reduce进行数组对象去重
    filter筛选
    判断区分安卓ios
    scrollIntoView 与 scrollIntoViewIfNeeded API 介绍
    vue中使用@scroll实现分页处理(分页要做节流处理)
  • 原文地址:https://www.cnblogs.com/caios/p/3787939.html
Copyright © 2011-2022 走看看