草庐IT

typeAlias

全部标签

swift - 什么时候使用类型别名?

到目前为止,我了解到类型别名是现有类型的命名别名。通过使用typealias,我可以做类似的事情:typealiasMyString=Stringvarstr:MyString?typealiasStrings=[String]varstrs:Strings?这导致将str变量声明为字符串,将strs声明为字符串数组。即使是自定义类型:classMyClass{}typealiasMyClsType=MyClassvarmyClass:MyClsType不过,它似乎有点没用;从逻辑上讲,声明-例如-varstr:MyString?为字符串而不是varstr:String?的目的是什么?

reference - 为什么我不能从引用对象的 val 或 typealias 引用嵌套对象?

考虑以下代码:objectSomeObjectA{objectSomeObjectB{vala="test"}}valX=SomeObjectAtypealiasY=SomeObjectASomeObjectA.SomeObjectB//worksX.SomeObjectB//errorY.SomeObjectB//error我不能使用引用外部对象的val或typealias来引用嵌套对象(在外部对象中)。为什么? 最佳答案 编译器错误来自java,kotlinobjects转换为javaclasses如下:publicfinalc

reference - 为什么我不能从引用对象的 val 或 typealias 引用嵌套对象?

考虑以下代码:objectSomeObjectA{objectSomeObjectB{vala="test"}}valX=SomeObjectAtypealiasY=SomeObjectASomeObjectA.SomeObjectB//worksX.SomeObjectB//errorY.SomeObjectB//error我不能使用引用外部对象的val或typealias来引用嵌套对象(在外部对象中)。为什么? 最佳答案 编译器错误来自java,kotlinobjects转换为javaclasses如下:publicfinalc

swift - 在 Swift 标准库的协议(protocol)中使用 typealias 语法

在Apple的Swift编程指南中,描述了如何在协议(protocol)中使用typealias关键字(来自泛型部分)protocolContainer{typealiasItemTypemutatingfuncappend(item:ItemType)varcount:Int{get}subscript(i:Int)->ItemType{get}}然后实现:structIntStack:Container{typealiasItemType=Int//cansometimesbeleftoutandinferredbythecompilermutatingfuncappend(ite

function - typealias 泛型函数

作为一项学习练习,我正在尝试编写一个小型函数库。我的库中的许多函数都需要传入函数。我想为该函数“键入别名”,以便我的库的用户必须传入具有特定签名的函数。我已经试过了:typealiasCallback=Result->()这种作品,但我想要AnyObject部分是任何。不具体AnyObject,因为那实际上是某种真实类型(?)。我的Result枚举我基于这个article关于Swift中的错误处理。这是一个通用枚举,所以这就是我想在我的函数签名中反射(reflect)的内容。如果我删除部分我收到一条错误消息:Referencetogenerictype'Result'requiresa

swift - Typealias 必须声明为公共(public)的,因为它符合公共(public)协议(protocol)中的要求

我正在实现一个基本的Functor//classFunctorfwherepublicprotocolFunctor{typealiasAtypealiasBtypealiasFB//fmap::(a->b)->fa->fbfuncfmap(f:A->B)->FB}publicstructBox{letvalue:Xpublicinit(valuev:X){value=v}}extensionBox:Functor{publictypealiasA=XpublictypealiasB=AnypublictypealiasFB=Boxpublicfuncfmap(f:A->B)->FB{

swift - swift 中的 struct 和 typealias 有什么区别?

我想要一个包含一个字符串和一个整数的数组。有什么区别:structPeople{varname:String!;varage:Int!};vardata=Array();data.append(People(name:"JohnDoe",age:31));与:typealiasPeople=(name:String!,age:Int!);vardata=Array();data.append((name:"JohnDoe",age:31));除此之外的一切。我的意思是,在访问数据、内存管理、指针问题或从struct切换到typealias时我应该警惕的其他事情上有什么不同吗?我通常使用

类和协议(protocol)的 Swift Typealias

我有一个变量,它必须是UIView,它也实现了MTMathKeyboard协议(protocol)。我试过了,varkeyboard:(UIView&MTMathKeyboard)varkeyboard:UIView实现协议(protocol)的非泛型类实例的语法是什么? 最佳答案 在Swift4中你可以使用:letkeyboard:UIView&MTMathKeyboard 关于类和协议(protocol)的SwiftTypealias,我们在StackOverflow上找到一个类似的

swift - 如何使 struct 和 typealias 符合@objc

是否有可能使struct和/或typealias符合@objc?我希望创建可选的协议(protocol)函数,一个返回一个struct,另一个返回一个typealias。publictypealiasSwiperData=(image:UIImage,title:String)publicstructSwiperPeekViewControllers{publicvarparentViewController:UIViewController!publicvarcontentViewController:UIViewController!publicinit(parentVC:UIVi

ios - 语句 "public typealias AnyObject"如何使 AnyObject 成为协议(protocol)?

当我按下Command并单击AnyObject导航到AnyObject的界面时,我遇到了以下定义:publictypealiasAnyObject我看到这条评论写在定义之上:Theprotocoltowhichallclassesimplicitlyconform.好吧,我不明白这个定义如何在没有显式使用关键字protocol的情况下使AnyObject成为protocol。此外,它是一个没有=someType的typealias,这是一个无效的语句。我不能写这样的声明:publictypealiasSomeOtherObject它给出了一个编译错误。谁能解释一下这里到底发生了什么?