基本数据类型 #

一、整数类型 #

1.1 整数类型概述 #

Swift提供多种整数类型:

类型 位数 范围
Int8 8位 -128 到 127
Int16 16位 -32768 到 32767
Int32 32位 -2147483648 到 2147483647
Int64 64位 -9223372036854775808 到 9223372036854775807
UInt8 8位 0 到 255
UInt16 16位 0 到 65535
UInt32 32位 0 到 4294967295
UInt64 64位 0 到 18446744073709551615

1.2 Int和UInt #

swift
let integer: Int = 42
let unsigned: UInt = 42

print(Int.min)
print(Int.max)
print(UInt.min)
print(UInt.max)

1.3 整数字面量 #

swift
let decimal = 42
let binary = 0b101010
let octal = 0o52
let hexadecimal = 0x2A

print(decimal)
print(binary)
print(octal)
print(hexadecimal)

1.4 可读性分隔符 #

swift
let bigNumber = 1_000_000
let creditCard = 1234_5678_9012_3456
let bytes = 0xFF_FF_FF_FF

print(bigNumber)
print(creditCard)
print(bytes)

二、浮点数类型 #

2.1 Float和Double #

swift
let float: Float = 3.14159265359
let double: Double = 3.14159265359

print(float)
print(double)
print(Float.pi)
print(Double.pi)

2.2 浮点数字面量 #

swift
let decimal = 3.14
let exponent = 1.5e2
let hexExponent = 0xFp2

print(decimal)
print(exponent)
print(hexExponent)

2.3 特殊浮点值 #

swift
let infinity = Double.infinity
let nan = Double.nan
let negativeInfinity = -Double.infinity

print(infinity)
print(nan)
print(negativeInfinity)

print(infinity > 1_000_000)
print(nan == nan)
print(nan != nan)

2.4 浮点数精度 #

swift
let a: Double = 0.1 + 0.2
let b: Double = 0.3

print(a)
print(b)
print(a == b)

let tolerance = 0.0001
print(abs(a - b) < tolerance)

三、布尔类型 #

3.1 布尔值 #

swift
let isTrue: Bool = true
let isFalse: Bool = false

print(isTrue)
print(isFalse)

3.2 布尔运算 #

swift
let a = true
let b = false

print(!a)
print(a && b)
print(a || b)

3.3 条件判断 #

swift
let score = 85
let passed = score >= 60

if passed {
    print("考试通过")
} else {
    print("考试未通过")
}

3.4 布尔命名规范 #

swift
var isEmpty: Bool = true
var hasPermission: Bool = false
var shouldUpdate: Bool = true
var canDelete: Bool = false
var isEnabled: Bool = true

四、字符类型 #

4.1 字符定义 #

swift
let char: Character = "A"
let emoji: Character = "😊"
let chinese: Character = "中"

print(char)
print(emoji)
print(chinese)

4.2 字符属性 #

swift
let char: Character = "A"

print(char.isLetter)
print(char.isNumber)
print(char.isUppercase)
print(char.isLowercase)
print(char.isWhitespace)
print(char.isASCII)

4.3 特殊字符 #

swift
let newline: Character = "\n"
let tab: Character = "\t"
let quote: Character = "\""
let backslash: Character = "\\"
let unicode: Character = "\u{1F600}"

4.4 字符转换 #

swift
let char: Character = "A"
let asciiValue = char.asciiValue
let upperChar = Character("A")
let lowerChar = Character("a")

print(asciiValue ?? 0)

五、字符串类型 #

5.1 字符串定义 #

swift
let string: String = "Hello, Swift!"
let empty1: String = ""
let empty2: String = String()

print(string)
print(string.isEmpty)
print(string.count)

5.2 多行字符串 #

swift
let multiline = """
这是一个
多行字符串
可以包含换行
"""

print(multiline)

5.3 字符串插值 #

swift
let name = "Swift"
let version = 5.9
let year = 2014

let message = "欢迎学习 \(name) \(version)!"
let info = "\(name)诞生于\(year)年"
let calculation = "2 + 3 = \(2 + 3)"

print(message)
print(info)
print(calculation)

5.4 字符串操作 #

swift
var greeting = "Hello"

greeting += ", World!"
print(greeting)

greeting.append("!")
print(greeting)

let upper = greeting.uppercased()
let lower = greeting.lowercased()
print(upper)
print(lower)

5.5 字符串方法 #

swift
let text = "  Hello, Swift!  "

print(text.count)
print(text.isEmpty)
print(text.hasPrefix("  He"))
print(text.hasSuffix("t!  "))
print(text.contains("Swift"))
print(text.trimmingCharacters(in: .whitespaces))

5.6 字符串索引 #

swift
let str = "Swift"

let firstIndex = str.startIndex
let firstChar = str[firstIndex]
print(firstChar)

let lastIndex = str.index(before: str.endIndex)
let lastChar = str[lastIndex]
print(lastChar)

let thirdIndex = str.index(str.startIndex, offsetBy: 2)
let thirdChar = str[thirdIndex]
print(thirdChar)

5.7 字符串遍历 #

swift
let str = "Swift"

for char in str {
    print(char)
}

for (index, char) in str.enumerated() {
    print("\(index): \(char)")
}

5.8 子字符串 #

swift
let str = "Hello, Swift!"

let index = str.firstIndex(of: ",")!
let firstPart = str[..<index]
let secondPart = str[str.index(after: index)...]

print(firstPart)
print(secondPart)

六、类型转换 #

6.1 整数转换 #

swift
let int8: Int8 = 100
let int16: Int16 = Int16(int8)
let int32: Int32 = Int32(int16)

let small: Int8 = 127
let large: Int = Int(small)

6.2 浮点数转换 #

swift
let float: Float = 3.14
let double: Double = Double(float)

let intVal = 42
let doubleVal = Double(intVal)
let floatVal = Float(intVal)

6.3 字符串转换 #

swift
let intStr = String(42)
let doubleStr = String(3.14)
let boolStr = String(true)

let intFromString = Int("42")
let doubleFromString = Double("3.14")

print(intFromString ?? 0)
print(doubleFromString ?? 0.0)

6.4 字符与字符串 #

swift
let char: Character = "A"
let str = String(char)

let chars: [Character] = ["H", "e", "l", "l", "o"]
let combined = String(chars)

七、类型检查 #

7.1 type(of:) #

swift
let value = 42
print(type(of: value))

let pi = 3.14
print(type(of: pi))

let text = "Hello"
print(type(of: text))

7.2 is关键字 #

swift
let any: Any = 42

if any is Int {
    print("是整数")
}

if any is String {
    print("是字符串")
}

八、总结 #

本章学习了Swift的基本数据类型:

  • 整数:Int、UInt及各种位数类型
  • 浮点数:Float、Double
  • 布尔值:true、false
  • 字符:单个Unicode字符
  • 字符串:文本序列

关键要点:

  • 优先使用Int和Double
  • 注意浮点数精度问题
  • 使用有意义的布尔命名
  • 字符串支持插值和多行

下一章,我们将学习Swift独特的可选类型!

最后更新:2026-03-26