当前位置: 首页 > 面试题库 >

如何在Swift代码中将元组附加到数组对象?

太叔英卫
2023-03-14
问题内容

我搜索了google,但找不到在Swift中将新元素追加到数组对象的方法。出现错误代码“呼叫中参数“名称”缺少参数”。遵循我的代码。

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
))

如果您知道任何解决方案,我将非常高兴。谢谢。


问题答案:

只需将元组分配给temp变量:

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"))

结果:当将tuple变量传递给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")
test.doSomething(tuple)
test.doSomething((param1: 2, param2: "Test"))

因此,这绝对是仅与泛型类有关的问题。



 类似资料:
  • 我试图向数组中添加一个元组(例如,2项元组)。 我得到的是: 找不到接受提供的参数的“=”的重载 提示:我试图超载每个参考书的=: ...但是没有弄对。 有什么想法吗。。。解决方案

  • 本文向大家介绍在PHP中,如何将对象元素添加到数组?,包括了在PHP中,如何将对象元素添加到数组?的使用技巧和注意事项,需要的朋友参考一下 代码如下- 示例 输出结果 这将产生以下输出- 创建对象,然后将其推到数组的末尾(以前存在)。 另类

  • 问题内容: 在可选数组的末尾附加元素的正确方法是什么?假设我有一个可选数组myArray,我想在末尾附加“ 99”。Append()在nil数组上不起作用,因此我可以找到的唯一解决方案是以下方法,但是它看起来并不十分优雅: 问题答案: 您可以使用的事实,通过可选的链接调用的方法总是返回一个可选的值,即如果它是 不可能的 调用方法: 如果则则追加新元素并返回,以便不执行if块。 如果则不执行任何操作

  • 问题内容: 如何将对象添加到数组(使用javascript或jquery)?例如,此代码有什么问题? 我想使用此代码在function1数组中保存许多对象,并调用function2在数组中使用该对象。 如何将对象保存在数组中? 如何将对象放入数组并将其保存到变量? 问题答案: 使用Array.push()将任何东西放入数组。 有关数组的更多信息 一次添加多个项目 将项目添加到数组的开头 将一个数组

  • 问题内容: 假设我有以下代码: 我可以手动调用下一个函数多次,以使2个数组按“相同名称”分组。 问题是我不知道变量值,在这种情况下为“ dinner”和“ lunch”,因此我想按名称自动对这个statEvents数组进行分组,所以当名称不同时,我会得到尽可能多的数组。 我该怎么办? 问题答案: 从Swift 4开始,此功能已添加到标准库中。您可以这样使用它: 斯威夫特3: 不幸的是,上面的函数复

  • 我到处都找不到一个类似于我的问题的答案,在Java中。我使用的是数组,而不是数组列表。 每次在我的咖啡店下新的订单时,咖啡店必须添加到客户已经访问过的商店数组中,但它应该只出现一次,即使他们访问过两次说‘星巴克’。 我有一个main文件,一个CoffeeShop类,和一个Customer类,这三个文件都在OOP中协同工作。 我认为“this”应该是调用“.newOrder()”的特定咖啡店,但大体