当前位置: 首页 > 知识库问答 >
问题:

二进制运算符“>=

国仰岳
2023-03-14

我有两个错误。当我使用

二进制运算符'

 override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
    var speedOfTouch = 30

    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)

        if location.x < CGRectGetMidX(self.frame) {
            square.position.x <= speedOfTouch
            square.physicsBody?.applyImpulse(CGVector(dx: -40, dy: 0))



        }
        else {
            square.position.x >= speedOfTouch
            square.physicsBody?.applyImpulse(CGVector(dx: 40, dy: 0))
        }

    }
}

我需要帮助!

共有3个答案

公良凯
2023-03-14

我认为至少有两个问题。

>

  • speedOfTouch具有Int类型,因为您没有指定任何其他类型。所以在表达式中square.position.x

    Swift不会在数字类型之间自动转换,也不会定义<代码>

    例如,您可以通过将speedOfTouch显式声明为CGFloat来解决此问题:

    var speedOfTouch: CGFloat = 30
    

    另一个不会给你编译器错误的问题是,你已经编写了square.position.x

    在优化(发布)构建中,编译器可能会完全消除比较。那你为什么要这么做?

    您可能想对比较的结果做些什么。例如,您可能想这样做:

    if ((location.x < CGRectGetMidX(self.frame))
        && (square.position.x <= speedOfTouch)) {
        square.physicsBody?.applyImpulse(CGVector(dx: -40, dy: 0))
    }
    

  • 闻人嘉悦
    2023-03-14

    swift编译器认为,试图比较两种不同的类型是程序员的错误。

    只需将代码更改为:

    var speedOfTouch = 30 as CGFloat
    
    郁明诚
    2023-03-14

    更改一行:

    let speedOfTouch = CGFLoat(30)
    

    它不起作用,因为您无法将两种不同的类型作为编译器状态进行比较

     类似资料:
    • 我想制作一个简单的Java程序,但我得到了以下错误: 这是我的代码:

    • 概述 二进制位运算符用于直接对二进制位进行计算,一共有7个。 二进制或运算符(or):符号为|,表示若两个二进制位都为0,则结果为0,否则为1。 二进制与运算符(and):符号为&,表示若两个二进制位都为1,则结果为1,否则为0。 二进制否运算符(not):符号为~,表示对一个二进制位取反。 异或运算符(xor):符号为^,表示若两个二进制位不相同,则结果为1,否则为0。 左移运算符(left s

    • 我理解CGFloat和Int之间的区别,但奇怪的是,我能够在if循环中使用 其中,image是未包装的UIImage及其大小。宽度是CGFloat,而数字200是Int类型,这可以在Xcode上运行,没有编译器错误。 然而与: Xcode返回错误: 二进制运算符' 并且Xcode无法运行。我在CGFloat上查看了Apple文档及其'=='和' 我的问题是,为什么一个有效,而另一个是错误?

    • 本文向大家介绍解析Python中的二进制位运算符,包括了解析Python中的二进制位运算符的使用技巧和注意事项,需要的朋友参考一下 下表列出了所有的Python语言的支持位运算符。假设变量a持有60和变量b持有13,则: 示例: 试试下面的例子就明白了所有的Python编程语言提供了位运算符: 当执行上面的程序它会产生以下结果:

    • 问题内容: 我试图了解Java字节码。我从一个简单的例子开始: 我编译了这个类: 然后我尝试在.class上像这样: 这给了我这个: 除了这一行,我可以理解其中的内容: 查看我的源代码和此字节码,看起来javac已经为该语句完成了加法运算: 并要求jvm返回该常量。 如果我的理解是错误的,有人可以纠正我吗?javac 在实际在jvm上运行之前,是否对,等等进行编译操作?如果可以,怎么办? 问题答案