当前位置: 首页 > 面试题库 >

无法在struct方法中分配属性

湛财
2023-03-14
问题内容

在Swift中,我尝试执行以下操作:

struct Foo {
    var bar = 1

    func baz() {
        bar = 2
    }
}

Xcode Cannot assign to 'bar' in self在方法中在线上报告错误。

为什么?如果将结构更改为类,则不会出错。


问题答案:

如果要修改结构的属性,请将该函数标记为mutating。

struct Foo {
    var bar = 1

    mutating func baz() {
        bar = 2
    }
}


 类似资料:
  • 问题内容: 我正在尝试将指针缠绕在go中。我这里有这段代码 和输出是 我想了解为什么我的InsertList方法根本没有引用节点指针指向其他结构 问题答案: 接收方通过值传递,就像其他参数一样,因此调用者看不到您在函数中所做的任何更改。如果要让函数修改函数外部存在的内容,则该函数需要处理指向该对象的指针。在您的情况下,是一个指针,但是您真正想要的是一个指向表示列表本身的对象的指针。例如:

  • 问题内容: 我正在使用Spark 1.6(Cloudera 5.8.2),并尝试了以下方法来配置ORC属性。但这不会影响输出。 以下是我尝试过的代码段。 除此之外,我还尝试了在hive-site.xml和hiveContext对象中设置的这些属性。 hive –orcfiledump在输出中确认未应用配置。以下是Orcfiledump代码段。 问题答案: 您在这里犯了两个不同的错误。我不怪你 我去

  • 我有一个具有两个输入属性的 Angular 组件。我想在设置两个属性时调用一个方法,是否有任何事件可以使用? 在上面的代码示例中,当已经分配了产品和属性类型时,我想调用dosomeworkfwhentbothproductandattributetypeareset()。我尝试在设置第二个属性后调用该方法,但有时产品需要更长的时间来分配,因此无法按预期工作。

  • 实际上,我正在尝试创建一个应用程序,有n个多媒体文件,其中包括图像和视频。我的应用程序大小大约为,我的资产大小大约为。当我在普通设备上加载应用程序时,我们没有遇到任何问题,但在具有的设备上,如等,应用程序在过程中崩溃,错误是“内存不足”。我已经用这个生成了错误报告。我也尝试过位图工厂。同时,我使用了数组的视频方法。 有谁能帮助解决这个问题吗? 致命异常:主进程:com.example.we.app

  • 问题内容: 谁能解释这个原因 它打印零。 问题答案: 是后增量(JLS 15.14.2 )。它增加,但是表达式的结果是增加 之前 的值。将该值重新分配为有效会使值保持不变。 分解成这样: 很容易看到这种情况的原因。现在,我们改为用代替左侧。右边的值仍然是,这就是为什么要插入摘要。

  • 问题内容: A类提供一个字符串值。类B在其内部具有两个A类型的成员,并提供一个计算属性“ v”来选择其中之一。 这段代码很简单,可以正常工作。由于A和B都具有成员“值”,因此我将其设为这样的协议: 如果我更改以下代码 至 它再次起作用! 这是Swift的错误,还是协议属性的特殊之处? 问题答案: 您必须将协议定义为协议: 然后 编译并按预期方式工作(即,将新值分配给if 所引用的对象,否则分配给否