Swift字面量介绍和用法详解

本文概述

  • Swift字面量的类型
  • 字符串和字符Swift字面量
  • 浮点字面量
  • 布尔字面量
  • 类型别名
  • 类型安全
  • 类型推断
字面量是变量或常量的直接值。它可以是数字, 字符或字符串。字面量用于初始化变量或为变量或常量赋值。
例:
let siteName = "srcmini.com"

在这里, srcmini.com是字面量, 而siteName是常量。
Swift字面量的类型整数字面量
  • 二进制字面量
    • 它用于表示二进制值。
    • 它以0b开头。
  • 八进制字面量
    • 用于表示八进制值。
    • 它以0o开头。
  • 十六进制字面量
    • 用于表示十六进制值。
    • 它以0x开头。
  • 小数字面量
    • 用于表示十进制值。
    • 它从无到有。你在整数字面量中声明的所有内容均为十进制类型。
整数字面量示例:
let binaryNumber = 0b11111111 print(binaryNumber) print(1231)

输出
255 1231

上面的示例包含两个整数字面量0b11111111(二进制字面量)和1231(十进制字面量)。 255是11111111的十进制值, 这就是为什么print(binaryNumber)语句在屏幕上输出255的原因。
字符串和字符Swift字面量用双引号覆盖的字符序列称为字符串字面量, 而用双引号覆盖的单个字符称为字符字面量。
例:
let randomCharacter:Character = "C" let randomString:String = "C is an awesome programming language" print(randomCharacter) print(randomString)

输出
C C is an awesome programming language

浮点字面量浮点字面量用于float和double值。有两种类型的浮点字面量:
小数:
它可以存储可选的指数, 由大写或小写e表示。对于指数为exp的十进制数字, 将基数乘以10exp。
例:
let someFloat = 3.1416 let someAnotherFloat = 3.14e2 print(someFloat) print(someAnotherFloat)

输出
3.1416 314.0

十六进制:
十六进制浮点数必须包含一个由大写或小写p表示的指数。对于指数为exp的十六进制数, 将基数乘以2exp。
例:
let someFloat = 0xFp10 let someAnotherFloat = 0xFp-12 print(someFloat) print(someAnotherFloat)

输出
15360.0 0.003662109375

布尔字面量Swift中有两个布尔字面量:true和false。
例:
let result1:Bool = false let result2:Bool = true print(result1) print(result2)

输出
false true

类型别名【Swift字面量介绍和用法详解】typealias用于为现有类型创建新名称。
句法:
typealias newname = type

例:
让我们举一个例子, 我们将” Raj” 作为Int类型的另一个名称。
typealias Raj = Int var distance: Raj = 100 print(distance)

输出
100

类型安全Swift 4是一种类型安全的语言。如果你的代码需要Int, 则不能使用String。它在编译代码时执行类型检查, 并将所有不匹配的类型标记为错误。
例:
var varA = 12 varA = "Hello World!" print(varA)

输出
main.swift:2:8: error: cannot assign value of type 'String' to type 'Int' varA = "Hello World!" ^~~~~~~~~~~~~~

你可以看到上述程序仅由于类型安全而出现了编译时错误。
类型推断Swift是一种类型推断语言, 意味着在编译Swift代码时, 它会自动检查你提供的值的类型。它会自动选择适当的数据类型以成功执行。
例:
// varA is inferred to be of type String var varA = "Love is life" print(varA)// varB is inferred to be of type Int var varB = 143 print(varB)// varC is inferred to be of type Double var varC = 3.1416 print(varC)// varD is also inferred to be of type Double var varD = 3 + 0.1416 print(varD)

输出
Love is life 143 3.1416 3.1416

    推荐阅读