草庐IT

四元组

全部标签

arrays - 来自元组数组的 UIPicker

如何加载带有元组数组的UIPickerView?使用以下代码,我只能在UIPickerView中看到Oregon:9.0。letmyArrayTuple:[(String,Double)]=[("Illinois",7.0),("Wisconsin",8.0),("Oregon",9.0)]funcpickerView(pickerView:UIPickerView,titleForRowrow:Int,forComponentcomponent:Int)->String?{varstateName:String?varstateTax:Double?for(name,tax)inmy

swift - 将元组作为 inout 参数传递时出现 "implicit conversion from <tuple type> to <tuple type 2> requires a temporary"错误

这是我的代码:varmyTuple=("bar",42)funcfoo(_bar:inout(arg1:String,arg2:Double)){[...]}foo(&myTuple)我收到此行的以下错误:foo(&myTuple)Cannotpassimmutablevalueasinoutargument:implicitconversionfrom'(String,Double)'to'(arg1:String,arg2:Double)'requiresatemporary 最佳答案 实际问题是您的元组变量缺少函数中存在的标签

Swift 闭包作为元组中的字段

我正在尝试创建一个简单的HTTP框架。起初我有以下类型别名:typealiassuccessBock=([Any])->()typealiaserrorBlock=(NSError)->()typealiasrequestResponseTuple=(con:NSURLConnection,success:successBock?,error:errorBlock?)我在这个方法中有一个错误:funcperformHttpRequest(method:HTTPRequestMethod,path:String?,parameter:Dictionary,success:successB

swift - 使用 switch 语句时扩展枚举中使用的元组的语法

考虑我有一个包含2个案例的枚举,其中一个案例有一个元组:enumMyEnum{caseFirstCase(output:(someString:String,someInt:Int))caseSecondCase(error:ErrorType)}当我创建一个枚举常量时:letmyEnum=MyEnum.FirstCase(output:(someString:"myString",someInt:3))我可以使用switch语句并对每种情况做一些事情switchmyEnum{case.FirstCase(letoutput):print(output.someInt)//prints

ios - 创建一个具有非可选值的常量元组,并与另一个具有可选值的元组进行比较

基本上我想比较两个元组,其中tuple1有3个值都是非可选的,而tuple2有3个具有相同数据类型但都是可选的变量。lettuple1=(1,true,true)//Statictuplelettuple2=(value1?.intValue,value2?.boolValue,value3?.boolValue)//Herevalue1,2..areoptional`NSNumber`values.当我尝试比较它们时tuple1==tuple2,我遇到了编译器错误,如下所示Cannotexpresstupleconversion'(Int,Bool,Bool)'to'(Int?,Bo

swift - 如何返回一个可选的元组

我有一个函数,可以在string1和string2中找到子字符串的两个范围,并返回元组(Range!,Range!)我需要元组稍后将它们存储在数组中。当找不到范围时,问题就来了。如何处理这个问题,应该返回什么函数——空元组或带nil(nil,nil)的元组? 最佳答案 您应该返回可选值而不是强制展开元组中的每个Range对象:(Range?,Range?) 关于swift-如何返回一个可选的元组,我们在StackOverflow上找到一个类似的问题: http

swift - Swift 通用约束中的元组类型

我正在尝试在Swift中编写一个通用函数,其约束条件是参数必须是一对序列(我将把它变成字典)。这可能吗?我已经尝试了以下的许多变体,但编译器不喜欢其中任何一个。funcfoo(xs:S){//...} 最佳答案 不是您问题的直接答案,但如果您想创建字典然后你可以将你的函数定义为扩展Dictionary的方法并使用Dictionary定义的事实typealiasElement=(Key,Value)那么你的方法声明可以是extensionDictionary{funcfoo(xs:S){//...}}例如,要从元组创建字典,init方

Swift:元组中的 `weak` 引用

是否可以在Swift4中创建具有弱引用的元组?像这样:letx:(name:weakMyClass,name2:weakMyClass2) 最佳答案 首先,弱变量必须是可选的。其次,正如@Hamish在评论中所说,您不能将元组字段定义为弱字段。解决方法但是,如果你真的想使用元组,这里有一个解决方法第1步让我们定义一个对其内部对象有弱引用的包装器structWeakWrapper{weakvarvalue:Element?init(_value:Element){self.value=value}}第2步您的2个类(class)cla

ios - 元组属性的自定义 setter (Swift)

我的类中有一个计算属性,它是一个可选的元组:varcontents:(Int,Bool)?我想编写自定义setter,但不知道如何单独引用元组组件。有谁知道?我尝试了以下但它不起作用:varcontents:(IntcolorNumber,Boolselected)?{//getter&setterhere...} 最佳答案 使用let分解元组variVal:Int?varbVal:Bool?varcontents:(Int,Bool)?{get{ifiVal!=nil&&bVal!=nil{return(iVal!,bVal!)}

swift - 如何将 Void 类型添加到元组?

我在为元组集合声明Void类型时遇到了一些麻烦。我收到以下错误:Nilisnotcompatiblewithexpectedelementtype'Void'varmessages:[(person:String,type:String,text:String,action:Void,isSender:Bool)]?=[(person:"Buddy",type:"instruction",text:"Watvervelendvanuwschade.Devolgendevragenmoetendirectoplocatieingevuldworden",action:nil,isSend