Menu
CoddyTech

类型转换

本课属于 Coddy Swift 学习旅程的“基础知识”单元。第 34 课,共 86 课。

由于 readLine() 返回 String?,你通常需要将这个字符串转换为数字,才能进行计算。Swift 要求显式进行类型转换。它不会自动将字符串转换为整数或双精度浮点数。

要将字符串转换为整数,请使用 Int() 初始化器。由于转换可能失败(字符串中可能包含字母而不是数字),因此它会返回一个可选值:

let input = "42"
if let number = Int(input) {
    print(number + 10) // 输出:52
}

对于小数,请使用 Double():

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // 输出:39.98
}

将 readLine() 与数值运算结合使用时,这尤其有用。你可以将解包操作链接起来:

if let input = readLine(), let age = Int(input) {
    print("Next year you'll be \(age + 1)")
}

if let 语句中的逗号表示两个条件都必须满足:输入必须存在,并且必须能够转换为整数。

challenge icon

挑战

简单

读取两个输入:一个以字符串形式表示的小数和一个以字符串形式表示的整数。将它们转换为相应的数值类型,并计算它们的乘积。

你会收到以下输入:

  • 第一行:一个小数(例如,"3.5")
  • 第二行:一个整数(例如,"4")

使用 readLine() 读取这两个输入。将第一个输入转换为 Double,将第二个输入转换为 Int。然后将它们相乘并打印结果。

使用带链式可选绑定的 if let,安全地解包输入和转换后的值。

打印:两个数的乘积,类型为 Double

亲手试试

// 将小数作为字符串读取
if let decimalString = readLine() {
    // 将整数作为字符串读取
    if let intString = readLine() {
        // TODO:在下面编写你的代码
        // 使用 if let 将 decimalString 转换为 Double,将 intString 转换为 Int
        // 然后计算并打印它们的乘积
        
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Swift 在线编辑器