我遇到了以下两种方式:
#[derive(Debug)]
struct InputList(i32, i32, i32, i32);
#[derive(Debug)]
struct OutputList(i32, i32, i32, i32);
// Option 1
fn foo(input_list: InputList) -> OutputList {
return OutputList(input_list.0, input_list.1, input_list.2, input_list.3);
}
// Option 2
fn bar(input_list: InputList) -> OutputList {
OutputList(input_list.0, input_list.1, input_list.2, input_list.3)
}
fn main() {
let input_list1 = InputList(1, 2, 3, 4);
let input_list2 = InputList(6, 7, 8, 9);
println!("foo() invocation output: {:?}", foo(input_list1));
println!("bar() invocation output: {:?}", bar(input_list2));
}
只有这两个选择吗?
>
在函数的尾部位置有一个不带分号的表达式。
fn implicit() -> i32 {
1
}
另见:
使用返回
语句。
fn explicit() -> i32 {
return 1;
}
另见:
宏中可以包含return语句,因此您可能不会总是看到return语句。
macro_rules! thing {
($val:expr) => {{
if $val {
return 42;
}
}};
}
fn macro() -> i32 {
thing!(true);
99
}
另见:
使用<代码> 。
fn error() -> Option<i32> {
None?;
Some(42)
}
另见:
根据您对“从函数返回”的分类方式,这些也可能适用:
>
async fn sometime() -> i32 {
async { 42 }.await;
99
}
这是一个棘手且不明显的问题,因为编译器重写函数以包含状态机并实现Future
特征。每个. wait
都可以返回Poll::Pend
,但函数的调用者永远不必考虑这一点。
另见:
惊慌失措。
fn bail_out() -> Option<i32> {
panic!()
}
这里,函数“返回”,但通常不会得到值。
另见:
本文向大家介绍在js中函数返回多个值有哪些方法?相关面试题,主要包含被问及在js中函数返回多个值有哪些方法?时的应答技巧和注意事项,需要的朋友参考一下 使用数组的方式 2.将数据封装到json里面 3.return取下标 ` <script type="text/javascript"> function getData() { return ["oec2003", 25] } function
我正在等待(从USSD请求中)检索一个值,以便返回它(getUSSD):
如您所见,它将参数和的和保存在变量中,然后将包含它们的和的eax寄存器保存在变量中,就像函数返回值一样。 这样做是因为函数是用返回值定义的吗?
问题内容: 我在从Node.js中的回调函数返回值时遇到了小麻烦,我将尝试尽可能轻松地解释我的情况。考虑一下我有一个片段,它包含URL,并命中该URL,并提供输出: 我试图将其包装在函数中并返回如下值: 因为在我的Node.js代码中,我有很多语句将决定value的值,例如: 关键是a内的所有语句将保持相同,除了的值。因此,绝对需要将这些通用代码放入函数中。我尝试了同样的方法,但是in总是会回报我
编者按:这个问题中的语法早于Rust 1.0,1.0更新的语法会产生不同的错误,但Rust 1.0中的总体概念仍然相同。 我有一个带有字段的结构T,我想从函数返回该字符串。我不想复制整个字符串,只是指针: 为什么这是错误的?返回
问题内容: 我正在尝试编写一个函数(使用WebdriverJS lib),该函数遍历元素列表,检查名称并构建与该名称相对应的xpath定位器。我在这里简化了xpath定位器,所以不用注意。 我在这里面临的问题是:1)调用此函数返回未定义。据我了解,这是因为return语句不在其位置,而是:2)将其放置在同步代码通常可以正常工作的正确位置,不适用于异步承诺,因此调用此函数将返回相同的未定义,但是因为