gpt4 book ai didi

tuples - 固定大小的非同质元组

转载 作者:行者123 更新时间:2023-12-01 01:44:43 24 4
gpt4 key购买 nike

有什么方法可以定义一个函数只接受固定大小的元组,但其中的数据类型不同?

我们可以使用这样的东西

f(x::NTuple{N}...) where {N} = ...

强制执行相同大小的元组(但具有相同类型的内容),以及类似的东西
f(x::Tuple...) = ...

接受非同质序列(但长度可变)。

有没有办法同时实现两者?

最佳答案

元组是协变的,见 https://docs.julialang.org/en/latest/manual/types/#Tuple-Types-1 ,所以你可以使用 Any允许任何类型。因此,您可以这样做:

f(x::Tuple{Any,Any}...)  = ...

对于具有少量元素的元组,这可能是可以的,或者这样:
f(x::Tuple{Vararg{Any,10}}...) = ...

或者
f(x::NTuple{10, Any}...) = ...

这是允许您使用参数(在本例中为 10)指定元组元素数量的通用方法。

如果您不知道元组的大小,而只是希望它们的大小相同,那么您可以编写:
f(x::Tuple{Vararg{Any,N}}...) where N = ...

或者
f(x::NTuple{N, Any}...) where N = ...

关于tuples - 固定大小的非同质元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51539486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com