问题标签 [generic-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 在 R 中用不同的参数重载 S3 函数
这是对已发布问题的后续行动Create a function with different arguments in R
我创建了一个通用函数,但遇到了将不同的参数集传递给这些函数的问题
现在,我想添加一个model
参数modeBuild.ets
和一个不同的参数nnetar
该modelBuild
函数被另一个函数调用
现在,我们测试一个可重现的例子
结果nnetar
错误
为了更正它,我将所有参数作为输入包含在每个modelBuild
现在,所有功能都按预期工作
这是在其中创建泛型函数的最佳实践,R
还是有一种方法可以定义具有有限参数的方法,每个methodBuild
方法仍然可以调用它,而无需定义特定函数不需要的参数。我正在寻找类似的重载函数行为,如java
这可以在S4
或R6
方法系统中解决吗?
python - 使包装器对象与@singledispatch 兼容?
假设我有这样的课程:
代码库的其他地方是使用 @singledispatch 装饰器的通用函数。我希望“包装”的实例表现得好像它们从未被包装过。因此,例如,pprint(Wrapper({}))
将像pprint({})
我怎样才能做到这一点?
r - 在R中的通用函数中执行`UseMethod()`之后的代码?
我想要以下通用功能,
- 检查这些 allowedFormats (这有效),
- 比基于参数 x 的类型执行通用函数(有效)
- 在调用后评估语句
UseMethod()
(不起作用 - 正如预期的那样)
现在它在帮助中说明UseMethod
调用 UseMethod 之后的任何语句都不会被评估,因为 UseMethod 不会返回。
所以这并不奇怪。但是,除了定义一个validate_after()
调用validate()
后跟的附加函数之外,有没有一种方法可以实现这一点cat(“Validation completed”)
?
python-3.x - 对解压的多个参数进行单次调度
我已经fancyfunction
定义了对单个参数做某事。我把它装饰成一个通用函数,这样它就知道如果给它一个元组该做什么。
果然,上面两个函数的有效调用签名是:
我想做的事
我想简化调用签名,这样我就不需要额外的括号:
为了做到这一点,我需要重载函数来解包它的位置参数:
当然,上面的最后一个代码片段不起作用。这样做:
将调用泛型函数而不是重载函数。
是否可以singledispatch
识别装饰函数是使用*
-form of arguments 调用的?PS这种呼叫签名的正式名称是什么?
java - 在泛型类型中使用方法
考虑这个类:
我想在另一个使用泛型类型的函数中使用“method_a”来获取 A 类。例如:
我收到错误“找不到符号” m.method_a()
。这种方法是否可行,或者是否有任何类似的方法?
typescript - Typescript - 如何在 switch 语句中缩小泛型类型的可能性?
我正在尝试编写一个函数,该函数将根据传递的键和参数执行特定的计算。我还想强制传递的键和参数之间的关系,所以我使用了一个带有约束的通用函数:
也许我以错误的方式考虑这个问题,但似乎打字稿应该能够缩小 switch 语句中的泛型类型。我可以让它工作的唯一方法就是这种尴尬:
谁能解释为什么#1 不起作用或提供替代解决方案?
r - 如何在 R6 对象中调度 summary() 方法
我正在使用 R6 构建一个对象,该对象的字段包括数据框和其他信息。
我定义了第一种方法$print()
,我可以调用它,obj1$print()
或者print(obj1)
两种方法都可以正常工作。
我定义了第二种方法$summary()
,它是一个与以下相同的通用函数$print()
:在这种情况下,调用obj1$summary()
按预期工作:
但summary(obj1)
返回错误:
对象[[i]] 中的错误:设置环境子集的参数错误
示例代码如下:
我的理解是,在一个对象中,您可以定义与泛型函数同名的方法,并且这些方法会根据对象的类自动分派给函数,就像$print()
. 这不正确吗?
为什么相同的方法不适用于$summary()
? 我该如何解决?
非常感谢您的帮助。
vb.net - 在递归函数中调用作为参数传递的泛型函数
AddressOf
我的愿望是通过一个输入参数按名称运行给定的函数,例如Function Foo(x as Integer) As Integer
. 我在递归函数中需要的两个输入是函数名_name As String
和某种类型的对象 t _list As t
(整数、双精度、列表(整数)等)。目标是处理具有函数名称的元素或元素列表,因为有多次我需要通过给定函数处理列表,并且我不希望在每个位置复制列表处理代码。我试图在这种没有完全崩溃的函数(如下)中调用我最好的方法导致了这个错误:
警告:List.Test 操作失败。重载解析失败,因为无法使用以下参数调用公共“ProcessList”:“公共共享函数 ProcessList(Of t)(_func As Func(Of Object,t), _list As System.Object) As IEnumerable(Of t)”:参数匹配参数“_func”的类型参数推断失败。
作为参考,我发现了一段 Python 代码可以有效地满足我的需要,但是我对这个方向的翻译(Python 到 VB.net)有点生疏,而且我对这种类型的编程并不熟悉VB.net。Python 代码段是:
任何关于我需要如何调用这个函数的帮助,或者如果我的方法有缺陷如何重做这个函数,将不胜感激!
更新:
我重新检查了我是如何调用函数的,以及基于@djv 的我的方法正在工作的信息的其他一些事情。首先,由于我如何与这些函数交互的性质,我必须通过以下方式公开上述函数:
我现在也收到错误消息:
警告:List.Test 操作失败。无法将“System.Int32”类型的对象转换为“System.Collections.Generic.IList`1[System.Int32]”类型。
此时的问题可能在于我调用 ProcessList 函数的方法,而不是我想的函数本身。我正在与一个对自己调用 ProcessList 不满意的 GUI 进行交互,所以我需要这个中间“帮助器”函数,我显然没有正确使用它。
python - 如何编写根据传递的 pandas 列 dtype 行为不同的通用函数
我正在尝试使用 来自 functools的singledispatch编写一个通用函数。我希望函数根据传递参数的类型表现出不同的行为——在这种情况下,它将是一列数据框,可以是不同的 dtype:int64、float64、object、bool 等。
我试图通过实验做一些基本的事情:
但显然我得到一个错误,因为 python 不查看列的 dtype 属性。
有没有办法解决它?
我会很感激帮助。
generics - 浮点和双精度的 Kotlin 通用函数
以下函数可以编译,但只能与 Doubles 一起使用:
我也希望能够将该函数与 Floats 一起使用,所以我尝试将它变成一个通用函数:
但这不起作用,因为转换为 T 会导致警告“未经检查的转换:双倍转换为 T”。
如何正确地为 Float 和 Double 编写通用函数?