视图
协议定义如下:
public protocol View : _View {
/// The type of view representing the body of this view.
///
/// When you create a custom view, Swift infers this type from your
/// implementation of the required `body` property.
associatedtype Body : View
/// Declares the content and behavior of this view.
var body: Self.Body { get }
}
因此,View
现在是一个过时的协议,不能直接用作返回类型,尽管swift5.1的不透明返回类型可以处理这个问题,但是为什么要声明一个associatedtype主体:View
,而不是var主体:View{get}
?
在SwiftUI之前,Swift不允许我们使用具有关联类型的协议作为返回类型,但我们可以使用“常规”协议。编译器允许您通过显示以下错误进行限制:
"协议只能用作通用约束,因为它有Self或关联类型要求。"
这是什么意思?
>
每当我们调用that函数时,它总是返回不同的具体类型,而不是相同的具体类型。
为了避免每次调用时使用不同的具体类型作为返回类型,我们使用一些关键字作为不透明返回类型。
不透明返回类型:
因为如果它只是一个变量body:Self。Body{get}
-实现视图
协议的实体将不知道Body
的类型。
struct MyView: View {
var body: MyAnotherView {
//implementation...
}
}
此代码将无法编译,您必须编写以下内容:
struct MyView: View {
var body: View {
//implementation...
}
}
我认为在幕后,SwiftUI必须知道视图的确切类型,而不仅仅是协议
我正在使用下面的代码对JDK1.7进行测试 null 这个参数在哪里生效,因为我可以调用来设置我以后需要的协议?
问题内容: 这是什么在StackOverflow上经常讨论的问题,这意味着什么: 这样的好处是,如果通过HTTPS访问它,则会自动获得HTTPS,而不是那种可怕的“此页面上的不安全元素”警告。 但是,为什么要完全使用相对协议的URL?为什么不直接在CDN URL中始终使用HTTPS?毕竟,如果您决定通过HTTPS加载HTTP页面的某些部分,则没有理由抱怨。 (这是专门针对CDN的;几乎所有CDN都
本文向大家介绍Dubbo推荐用什么协议?相关面试题,主要包含被问及Dubbo推荐用什么协议?时的应答技巧和注意事项,需要的朋友参考一下 默认使用dubbo协议
主要内容:1 什么是HTTP协议,2 HTTP协议的特征,3 Web应用架构1 什么是HTTP协议 超文本传输协议(HTTP)是分布式,协作式超媒体信息系统的应用程序级协议。自1990年以来,HTTP就是互联网(即Internet)数据通信的基础。HTTP是一种通用的无状态协议。 HTTP是基于TCP/IP的通信协议,用于在万维网上传递数据(HTML文件,图像文件,查询结果等)。默认端口是TCP:80,当然也可以使用其他端口。它为计算机相互通信提供了一种标准化的方式。
本文向大家介绍什么是icmp协议,它的作用是什么?相关面试题,主要包含被问及什么是icmp协议,它的作用是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:ICMP协议 它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
问题内容: 苹果的新框架似乎使用了一种 新型语法 ,可以有效地构建元组,但又具有另一种语法: 尝试解决这种语法的实际含义时 ,我发现这里使用的初始化程序将类型的闭包 作为第二个参数,其中的通用参数是通过闭包推断的。为了找出要推断的类型,我对代码进行了一些更改,并保持其功能: 以此,表明自己是类型,即类型。向上看,我发现它是一个源自自身的包装器类型,只能通过传递应该包装的元组来进行初始化。 题 现在