在Go中声明一个函数时,可以给出多个相同类型的参数:
func test(a, b, c uint8) { }
Rust是否有办法为多个参数提供相同的类型,而无需手动明确指定每个参数?
这似乎不起作用:
fn test(a, b, c: u8) { }
答案 0 :(得分:6)
简单地:
fn test(a: u8, b: u8, c: u8) {}
如果您想单独为每个语法命名,则没有可用的快捷语法。
如果您不关心个人姓名:
fn test(a: &[u8; 3]) {}
如果物品的数量应该是动态的:
fn test(a: &[u8]) {}
我会注意到,就个人而言,我通常会发现在没有命名参数的情况下,将相同类型的多个参数传递给函数的想法是一个相当脆弱的设计。
除非这些参数可以互换,在这种情况下交换它们并不重要,我建议避免使用这些函数签名。而且,通过扩展,我认为不需要特殊的语法来适应脆弱性。
作为交换,Rust具有元组结构:struct X(u8);
,允许人们快速掀起新类型来代表新概念,而不是陷入原始的痴迷。