如何给出多个功能参数相同的类型?

问题描述 投票:0回答:1

在Go中声明一个函数时,可以给出多个相同类型的参数:

func test(a, b, c uint8) { }

Rust是否有办法为多个参数提供相同的类型,而无需手动明确指定每个参数?

这似乎不起作用:

fn test(a, b, c: u8) { }
rust
1个回答
6
投票

只是:

fn test(a: u8, b: u8, c: u8) {}

如果要单独命名每个语法,则没有可用的快捷语法。

如果您不关心个人姓名:

fn test(a: &[u8; 3]) {}

如果项目的数量应该是动态的:

fn test(a: &[u8]) {}

我要注意的是,就个人而言,我通常会发现在没有命名参数的情况下将相同类型的多个参数传递给函数的想法是一个相当脆弱的设计。

除非这些参数是可互换的,在这种情况下交换它们并不重要,那么我建议避免使用这些函数签名。而且,通过扩展,我认为不需要特殊的语法来适应脆弱性。

作为交换,Rust具有元组结构:struct X(u8);,允许人们快速掀起新类型来代表新概念,而不是陷入原始的痴迷。

© www.soinside.com 2019 - 2024. All rights reserved.