gpt4 book ai didi

xcode - class func,这在 Xcode 中意味着什么以及为什么 self 在其中从 myClass 更改为 myClass.Type

转载 作者:行者123 更新时间:2023-11-30 10:12:47 25 4
gpt4 key购买 nike

苹果有一些名为冒险的示例代码在这里找到:https://developer.apple.com/library/ios/samplecode/Adventure-Swift/Introduction/Intro.html

在函数 inferCharacterType 中,它们使用 Character.Type 来确定使用哪个字符子类。什么是 .Type 。我选择单击它,但它未定义且没有文档。传递给 inferCharacterType 的类继承自字符类。 .Type是否表示特定类型字符的身份(继承自字符的类之一)

// This function uses pattern matching to infer the appropriate enum value based on the type provided.
func inferCharacterType(fromType: Character.Type) -> CharacterType {
switch fromType {
case is Goblin.Type:
return CharacterType.Goblin
case is Cave.Type:
return CharacterType.Cave
case is Boss.Type:
return CharacterType.Boss
case is Warrior.Type:
return CharacterType.Warrior
case is Archer.Type:
return CharacterType.Archer
default:
fatalError("Unknown type provided for \(__FUNCTION__).")
}
}

所以我做了一些实验,故意造成错误来确定 self 的身份。我发现只有“class func”将 myClass.Type 显示为 self,“func”显示 myClass

这是图片

函数类型 class func

下一张图片

rugular

我想要一个可以在哪里查找此信息的引用。谢谢任何帮助表示感谢

最佳答案

classstatic开头的方法是“类型方法”。您可以在 section on type methods 中的《Swift 编程语言》一书中找到更多信息。 .

类型方法是在类型本身上调用的方法,而不是在该类型的实例上调用的方法。

let object = MyClass()
object.doSomething() // instance method
MyClass.doSomethingElse() // type method

因此,当在类型方法中使用时,self 不是指接收实例(与实例方法一样),而是指类型本身。

.Type 本身指的是 metatype type ,也就是类型的类型。

关于xcode - class func,这在 Xcode 中意味着什么以及为什么 self 在其中从 myClass 更改为 myClass.Type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32020103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com