zoukankan      html  css  js  c++  java
  • Swift语法基础:9

    在前面, 我们介绍了Swift的一些基本东西, 现在我们继续讲讲其他基础的东西:


    1. 数值的字面量

    十进制数, 没有前缀
    二进制数, 前缀加0b
    八进制数, 前缀加0o
    十六进制数, 前缀加0x

    例子:

    let decimalInteger = 17
    let binaryInteger = 0b10001
    let octalInteger = 0o21
    let hexadecimalInteger = 0x11
    println("(decimalInteger), (binaryInteger), (octalInteger), (hexadecimalInteger)")
    // 打印出来的结果: 17, 17, 17, 17

    2.指数

    十进制的指数

    let a = 1.25e2
    let b = 1.25e-2
    println("(a), (b)")
    // 打印出来的结果: 125.0

    这些也是十进制

    let decimalDouble = 12.1875
    let exponentDouble = 1.21875e1
    let hexadecimalDouble = 0xC.3p0
    println("(decimalDouble), (exponentDouble), (hexadecimalDouble)")
    // 打印出来的结果: 12.1875, 12.1875, 12.1875

    十六进制的指数

    let a = 0xFp2
    let b = 0xFp-2
    println("(a), (b)")
    // 打印出来的结果: 60.0, 3.75

    3.数值类型的转换

    在Swift中的树枝类型转换要注意一些东西, 那就是变量可存储的数据范围, 比如无符号类型的数值不能存储负数, 已经是最大值的类型不能再扩充, 这些操作都会引起编译器的报错, 比如:

    let cannotBeNegative: UInt8 = -1
    // 报错: Integer literal overflows when stored into 'UInt8'
    let tooBig: Int8 = Int8.max + 1
    // 报错: Arithmetic operation '127 + 1'(on type 'Int8')results in an overflow

    如果我们要将一个数转换成另一种类型, 然后再运算的时候, 我们需要这么做:

    let twoThousand: UInt16 = 2_000
    let one: UInt8 = 1
    let twoThousandAndOne = twoThousand + UInt16(one)
    println(twoThousandAndOne)
    // 打印出来的结果: 2001

    我们必须得初始化另一个期望类型, 然后在运算的时候把两个数字转成相同的类型再进行运算.


    4.整数和浮点数的类型转换

    在Swift里转换整数或者浮点数, 需要显式声明, 比如:

    let three = 3
    let pointOneFourOneFiveNine = 0.14159
    let pi = Double(three) + pointOneFourOneFiveNine
    println(pi)
    // 打印出来的结果: 3.14159

    如果我们需要把结果再转换一下, 那就另外再显示声明:

    let integerPi = Int(pi)
    println(integerPi)
    // 打印出来的结果: 3

    这样子的写法就是把pi转换成整数, 转成整数的时候会自动把尾巴去掉, 无论你的小数最后一个是多大, 它不会根据什么四舍五入进行进制.


    5.类型的别名

    在Swift中也是有类型别名的, 下面让我们来看看:

    typealias AudioSample = UInt16
    
    var maxAmplitudeFound = AudioSample.min
    println(maxAmplitudeFound)
    // 打印出来的结果: 0

    他这个的定义和OC中的使用方法原理相似, 这里就不多解释.


    好了, 这次我们就讲到这里, 下次我们继续~~

  • 相关阅读:
    iView
    JS
    JS
    JS
    Java
    Java
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4333129.html
Copyright © 2011-2022 走看看