可以通过命名函数的参数来调用Rust中的函数吗?

可以通过命名函数的参数来调用Rust中的函数吗?,rust,Rust,我不知道这是否被认为是一种良好的编程实践,但就我个人而言,我发现通过命名函数的参数来调用函数会使代码更具可读性。我不知道这在Rust编程语言中是否可行。我在语法中未找到任何命名调用表达式: 因此,例如,以下内容不可编译: fn add(n1 : i32, n2 : i32) -> i32 { n1 + n2 } fn main() { let sum_value = add(n1 = 124, n2 = 200); println!("sum = {

我不知道这是否被认为是一种良好的编程实践,但就我个人而言,我发现通过命名函数的参数来调用函数会使代码更具可读性。我不知道这在Rust编程语言中是否可行。我在语法中未找到任何命名调用表达式:

因此,例如,以下内容不可编译:

fn add(n1 : i32, n2 : i32) -> i32 {
    n1 + n2
}


fn main() {
    let sum_value = add(n1 = 124, n2 = 200);
    println!("sum = {}", sum_value);
}
因此,我的问题是:函数调用中的命名参数在Rust中是否可行?如果答案是肯定的,根据Rust最佳实践,它是否被认为是一种良好的实践?(我是初学者)

环境:

OS: Linux Ubuntu MATE 20.04.1 (64 bits)
rustc --version: rustc 1.46.0 (04488afe3 2020-08-24)

否,Rust中没有命名/关键字参数。据我所知,也没有计划增加这些项目

如果函数中有很多参数,请考虑传递结构、生成器模式等。 顺便说一下:

add()
示例没有说明为什么命名/关键字参数会有用,因为这些参数是可以互换的

所以我的问题是:函数调用中的命名参数在Rust中是否可行

Rust不支持将命名参数作为语言的一部分

根据最佳实践,是否认为这是一种良好实践?(我是初学者)

通常不会(相当强的键入通常有助于缓解此问题)

在真正有用的情况下,会反复出现两种模式:

  • 作为一个options结构,该函数将具有数量有限的简单参数和命名结构,以传递更多结构化数据,并提供“命名”
  • 构建器模式,它是前者的一个改进版本,更具可读性(并且更有利于可选参数)

有关更多信息,请参阅链接到的文章(我链接到线程,因为这里有关于选项的有用讨论,以及指向有用板条箱的链接)。

该语言中没有命名参数,但可以用宏模拟它们。有关实验解决方案,请参阅