【问题标题】:Correctly formulate if statement in switch在 switch 中正确制定 if 语句
【发布时间】:2020-04-02 10:06:43
【问题描述】:

这可能是一个非常基本的问题,但我正在使用 if 语句,下面的示例将无法使用错误“编译器无法在合理的时间内对该表达式进行类型检查;尝试分解表达式成不同的子表达式”。有人知道我做错了什么吗?

let a = 4

let b = 3

let c = 10

let d = 2


if ((sqrt((a - b)^2 + (c - d)^2)) > 100) {
              print("Yes")
        }

编辑:我知道我犯了一些错误,现在可以使用它:

var a = 4

var b = 3

var c = 10

var d = 2

var e = (a-b)

var f = (c-d)

var g = (e*e)

var h = (f*f)

var j = Double(g+h)

if (j.squareRoot() > 5) {
              print("Yes")
      }

【问题讨论】:

标签: swift if-statement mathematical-expressions


【解决方案1】:

使用更好的类型!

import simd

distance([4, 10] as SIMD2<Double>, [3, 2]) > 100

如果你真的需要处理这些整数……

public extension SIMD where Scalar: FloatingPoint {
  init<Integer: BinaryInteger>(_ integers: Integer...) {
    self.init( integers.map(Scalar.init) )
  }
}

distance( SIMD2<Double>(a, c), .init(b, d) ) > 100

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多