相关疑难解决方法(0)

快速语言中的结构与类

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

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

swift

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

间接的枚举和结构

首先,我想说,我知道在SO中有很多文章和问题引用了indirectSwift中的关键字.

最常用的解释indirect是允许递归枚举.

indirect我想知道它是如何允许我们使用递归枚举的,而不是只知道允许我们做什么.

问题:

是因为枚举是值类型,如果它们是以递归结构构建的,那么值类型不能很好地扩展?为什么?

indirect修改值类型行为是否更像行为类型?

以下两个例子编译得很好.有什么不同?

indirect enum BinaryTree<T> {
  case node(BinaryTree<T>, T, BinaryTree<T>)
  case empty
}

enum BinaryTree<T> {
  indirect case node(BinaryTree<T>, T, BinaryTree<T>)
  case empty
}
Run Code Online (Sandbox Code Playgroud)

enums struct swift

45
推荐指数
1
解决办法
8938
查看次数

Swift枚举中是否可以存在关联值和原始值?

Swift书中有一些例子分别展示了相关的值和原始值,有没有办法用两个特征一起定义枚举?

我试图将它们组合在一起但却出错了:

enum Barcode :String {
    case UPCA(Int, Int, Int) = "Order 1" // Enum with raw type cannot have cases with arguments
    case QRCode(String) = "Order 2" // Enum with raw type cannot have cases with arguments
}
Run Code Online (Sandbox Code Playgroud)

enums swift

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

更改枚举 Swift 的关联值

如何更改枚举的特定关联值

enum Origin {
    case search(searchTerm: String, filtered: Bool)
    case category(categoryName:String, subcategoryName:String)

}

@objc class GameSession: NSObject
{
    var gameOrigin: Origin?

    ...

    @objc func setIsSearchFiltered(filtered:Bool)
    {
        if (<gameOrigin is of type .search?>)
        {
            self.gameOrigin = <change "filtered" associated value to new value>
        }
    }

    ....
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个问题的答案最近对我没有帮助。

enums swift

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

在swift enum中,何时使用原始值以及何时使用相关值

StackOverflow上的某个人已经为这个问题提供了一个很好的答案:swift中原始值和相关值之间的区别是什么.

快速枚举中关联值和原始值之间的差异

但是,该问题不包括何时使用原始值以及何时使用相关值的信息.这是我有点困惑的部分.如果有人可以向每个人解释,那将是非常重要的.我认为这是一个很快就会有很多初学者的问题.

enums swift

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

标签 统计

swift ×5

enums ×4

struct ×1