Swift:负数相加

Swift: Adding negative numbers

我在添加负数时遇到了一个非常简单的问题,但 Apple 文档并没有真正涵盖这个问题。

SwiftUI 代码:

Text(String(-50 + 5))

这会引发错误,Compiling failed: Ambiguous use of operator '-'。然而,Text(String(-50)) 不会抛出任何错误。

我试过将 -50 转换为 Int 并将其括在括号中。此外,如果我将 -50 + 5 分配给一个变量,然后在 Text() 中使用该变量,它工作正常。我怎样才能让它显示 -45,是什么导致了错误?

注意:在 macOS Monterey

上使用 XCode 13.2.1

编辑: 人们要求提供屏幕截图,因为似乎并不是每个人都会遇到这个问题。这是一个全新项目中的问题。

检查 Canvas 诊断:

Swift.Float16:3:31: note: found this candidate
    prefix public static func - (x: Float16) -> Float16
                              ^
Swift.Float:2:31: note: found this candidate
    prefix public static func - (x: Float) -> Float
                              ^
Swift.Double:2:31: note: found this candidate
    prefix public static func - (x: Double) -> Double
                              ^
Swift.Float80:2:31: note: found this candidate
    prefix public static func - (x: Float80) -> Float80

并告诉 Xcode 你想使用哪种类型:

例如

Text(String(-Int(50) + 5))

Text(String(-50.0 + 5))

看到错误,可能代码无法将 -50 识别为 int。

Swift.Float16:3:31: note: found this candidate
    prefix public static func - (x: Float16) -> Float16
                              ^
Swift.Float:2:31: note: found this candidate
    prefix public static func - (x: Float) -> Float
                              ^
Swift.Double:2:31: note: found this candidate
    prefix public static func - (x: Double) -> Double
                              ^
Swift.Float80:2:31: note: found this candidate
    prefix public static func - (x: Float80) -> Float80

所以我测试了一些这样的例子。

let a =  -Int(50) + 3
let b =  -50.0 + 3
let c:Int = -50 + 3

Text(String(-Int(50) + 3))
Text(String(a))
Text(String(b))
Text(String(c))