如何在Swift代码中将数组附加到数组对象?
发布时间:2020-12-14 05:20:01 所属栏目:百科 来源:网络整理
导读:参见英文答案 Array of tuples in Swift3 我搜索了谷歌,但我无法找到一种方法来添加新元素到Swift的数组对象. 错误代码“缺少参数fot参数”名称“在调用”出现. 我的代码是遵循的. var arrayObj: [(id: Int,name: String)] = []var idInt: Int = 1var nameSt
参见英文答案 >
Array of tuples in Swift3
我搜索了谷歌,但我无法找到一种方法来添加新元素到Swift的数组对象. 错误代码“缺少参数fot参数”名称“在调用”出现. 我的代码是遵循的. var arrayObj: [(id: Int,name: String)] = [] var idInt: Int = 1 var nameString: String = "hoge" arrayObj.append(( // ----> "Missing arguments fot parameter "name" in call" id: idInt,name: nameString )) 如果你知道任何解决方案,我会很高兴.
只需将元组分配给一个临时变量:
let tuple = ( id: idInt,name: nameString ) arrayObj.append(tuple) 不知道为什么它不工作,只是检查一个功能,像这样: var array: [(param1: Int,param2: String)] = [] func test(x: (param1: Int,param2: String)) { println(x) } test((param1: 2,param2: "Test")) array.append((param1: 2,param2: "Test")) 结果:功能正常,数组方法不行. 更新:在操场上试过这段代码: struct Test<T> { func doSomething(param: T) { println(param) } } var test = Test<(param1: Int,param2: String)>() let tuple = (param1: 2,param2: "Test") test.doSomething(tuple) test.doSomething((param1: 2,param2: "Test")) 结果:当将元组变量传递给doSomething时,它起作用 – 尽管编译器消息不同,但是使用文字元组,而不是: '((param1: Int,param2: String)) ->()' does not have a member named 'doSomething' 显然,将一个文字元组传递给通用类的方法(其中元组是通用类型)的编译器未正确处理. 更新#2:我重复了一个非泛型类的测试,但是使用通用的方法,在这种情况下它工作: struct Test { func doSomething<T>(param: T) { println(param) } } var test = Test() let tuple = (param1: 2,param2: "Test")) 所以这绝对是一个与泛型类有关的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |