将多个方法参数作为循环或字符串传递

Posted

技术标签:

【中文标题】将多个方法参数作为循环或字符串传递【英文标题】:Passing multiple method arguments as a loop or a string 【发布时间】:2021-08-02 00:49:57 【问题描述】:

我有一个带有超过 50 个参数的输入法的 coreML 模型。一个一个地编写它们会非常乏味,但我不知道如何以编程方式完成,即通过字符串或循环。

let model = myModel()
let modelInput = myModelInput(//here all the arguments: arg1 : Int, arg2 : Int, arg3 : Int, arg4 : Int, etc.)
guard let myModelOutput = myModel.prediction(input: modelInput) else 

我可以使用循环将所有参数写入字符串或字典中,但 myModelInput 不会接受它。有办法吗?

【问题讨论】:

正如@matt 所说,您可以使用 Dictionary 方法,但如果您有 50 个类型相同的参数,则将它们粘贴到向量中(即 MLMultiArray)可能更有意义将其传递给模型。 【参考方案1】:

您是否可以控制模型输入类/结构?如果是这样,给它另一个初始化器,一个调用真实初始化器的便利初始化器。现在你可以传递一本字典或任何你决定的东西。并且字典可以通过编程方式构建。

因此,繁琐的部分仍然存在,但它已从调用站点移到类本身,只需要编写一次。

【讨论】:

好吧,它可以工作,虽然我曾设想过另一种方法,但我的基本问题 - 硬编码的许多参数 - 仍然存在。还有另一种传递标签的方法吗?我的意思是,就像在 for 循环中一样: for x in 0...50 arg[x]=myvalue 那是一本字典。我看不出这里还需要什么。

以上是关于将多个方法参数作为循环或字符串传递的主要内容,如果未能解决你的问题,请参考以下文章

如何将多个参数作为数组传递给 ruby​​ 方法?

在for循环中传递多个参数的方法?

传递方法作为参数[重复]

解析字符串并将标记作为参数传递

如何使用react将多个参数作为url中的对象传递

更好的设计选择:方法返回 Object 或传递 'Class<T> type' 作为参数?