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))
我在添加负数时遇到了一个非常简单的问题,但 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))