相关疑难解决方法(0)

swift中`let`和`var`有什么区别?

是什么区别let,并var在苹果的雨燕语言?

根据我的理解,它是一种编译语言,但它不会在编译时检查类型.这让我感到困惑.编译器如何知道类型错误?如果编译器没有检查类型,那么生产环境是不是有问题?

swift

302
推荐指数
8
解决办法
16万
查看次数

快速语言中的结构与类

来自Apple的书"结构和类之间最重要的区别之一是结构在代码中传递时总是被复制,但类是通过引用传递的."

任何人都可以让我理解这意味着什么,对我来说,类和结构似乎是一样的.

swift

184
推荐指数
6
解决办法
7万
查看次数

无法分配属性:'self'是不可变的,我知道如何修复但需要理解

我有一个struct:

public struct MyStruct {
  public var myInt: Int = 0
  ...
}
Run Code Online (Sandbox Code Playgroud)

我有一个扩展MyStruct:

extension MyStruct {

  public func updateValue(newValue: Int) {
     // ERROR: Cannot assigned to property: 'self' is immutable
     self.MyInt = newValue
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到上面显示的错误,我知道我可以通过多种方式修复错误,例如mutating之前添加关键字func.

我在这里不是问如何修复错误,但问为什么swift不允许这种值赋值?除了修复之外我还需要一个解释.

swift

15
推荐指数
2
解决办法
9125
查看次数

什么是KeyPath用于?

在Swift 4中,许多基金会团队已经讨论过使用keyPaths与Swift 3相比有多容易.这引出了一个问题......什么是keyPath?说真的,我找不到任何明确的资源.

foundation swift

10
推荐指数
1
解决办法
4232
查看次数

无法在struct方法中赋值

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

struct Foo {
    var bar = 1

    func baz() {
        bar = 2
    }
}
Run Code Online (Sandbox Code Playgroud)

Xcode报告Cannot assign to 'bar' in self方法中的行错误.

为什么?如果我将结构更改为类,则没有错误.

swift

3
推荐指数
1
解决办法
1592
查看次数

标签 统计

swift ×5

foundation ×1