【问题标题】:What does the <Page: View> do in struct PageView<Page: View>?<Page: View> 在 struct PageView<Page: View> 中做了什么?
【发布时间】:2020-05-07 20:05:29
【问题描述】:

作为一个 Swift 新手,我正在努力理解......

  • 在结构名称后添加&lt;Page: View&gt;(或&lt; &gt; 中包含的任何内容)会发生什么情况?
  • 这个语法叫什么名字?
  • 这是在 Swift 文档中解释的(在哪里?),还是从 C/C++ 派生的?

【问题讨论】:

  • 我相信你指的是 SwiftUI。在 Swift 中,这意味着您要声明类型/协议继承或定义泛型类型“”。也许这会给你一个开始的地方。
  • 顺便说一句,你可能想用SwiftUI标记这个
  • 有趣的是,我确实用 swiftui 标记了原始帖子。 ????‍♂️
  • SwiftUI 是基于 swift 语言的 UI 框架。这里没有 SwiftUI 本身,泛型和协议是 Swift 语言的核心特性。

标签: swift


【解决方案1】:

感谢@Asperi 在 cmets 中指出的方向,我想我能够回答我自己的问题。

这种语言结构的名称是generics

在下面的第一个示例中,Page 定义了一个通用类型,一个类型的占位符名称。 page 参数可以存储任何有效的 Swift 类型的值。 Page 可以是任何对代码可读性有意义的名称。

struct PageView<Page> {
    var page: Page
}

在下面的第二个示例中,View 是一个类型约束,用于限制可分配给page 参数的可能类型。在此示例中,通用 Page 类型必须遵守 SwiftUI View 协议。分配给 page 的任何内容都必须实现 View 协议所需的所有内容。

struct PageView<Page: View> {
    var page: Page
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    相关资源
    最近更新 更多