可以通过命名函数的参数来调用Rust中的函数吗?
我不知道这是否被认为是一种良好的编程实践,但就我个人而言,我发现通过命名函数的参数来调用函数会使代码更具可读性。我不知道这在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 = {
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结构,该函数将具有数量有限的简单参数和命名结构,以传递更多结构化数据,并提供“命名”
- 构建器模式,它是前者的一个改进版本,更具可读性(并且更有利于可选参数)
有关更多信息,请参阅链接到的文章(我链接到线程,因为这里有关于选项的有用讨论,以及指向有用板条箱的链接)。该语言中没有命名参数,但可以用宏模拟它们。有关实验解决方案,请参阅