相关疑难解决方法(0)

Rust中单位类型的目的是什么?

Rust具有单元类型,()具有单个零大小值的类型.此单位类型的值也使用().

单位类型及其价值的目的是什么?它是一种避免像其他语言一样使用null(或nil)的机制吗?

rust unit-type

32
推荐指数
2
解决办法
7303
查看次数

在 Rust 中使用 return 语句和省略分号有什么区别?

我正在编写一个函数,该函数在成功(和失败)时返回 serde_json::Value。以前在 Rust 中,我一直省略分号以从函数返回数据,如下面的代码示例所示:

use serde_json::{Result, Value};
use core::result::Result as ResultCore;

fn returning_function() -> ResultCore<Value, Value> {
    let data = r#"
    {
        "status": "ok",
        "response": {
            "data": "secret message!"
         }
    }
    "#;

    match str_to_json(data) {
        Ok(json_data) => match json_data["status"].as_str() {
            Some(status_str) => {
                if status_str == "ok" {
                    Ok(json_data["response"].clone())
                }
            }
            None => eprintln!("\"status\" was not a string")
        }
        Err(error) => eprintln!("something went wrong! here's what: {}", error)
    }

    Err(serde_json::Value::Null)
}

fn str_to_json(json_data: &str) -> Result<Value> {
    Ok(serde_json::from_str(json_data)?)
}
Run Code Online (Sandbox Code Playgroud)

这是我不明白的部分:这不能编译。Rust …

return rust serde-json

6
推荐指数
2
解决办法
664
查看次数

Rust 中 () 是什么意思?

我试图理解类似于以下内容的函数:

fn some_func(arg1: str, arg2: str) -> error::Result<()>
{
  /// Do some stuff ...
  Ok(())
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,()给定Ok和意味着什么?Result这是惯用语还是代码库的实现细节?


更新:编译了以下代码块,它可以作为更有用的 MVCE

fn main() -> Result<(), ()> {
  Ok(())
}
Run Code Online (Sandbox Code Playgroud)

rust

5
推荐指数
0
解决办法
1284
查看次数

为什么没有else的if总是会导致()作为值?

从本教程:

如果没有else总是会导致()作为值.

为什么Rust强加了这个限制,并且不让一个if没有else返回其他值,如下所示:

let y = if x == 5 { 10 };
Run Code Online (Sandbox Code Playgroud)

rust

4
推荐指数
1
解决办法
423
查看次数

标签 统计

rust ×4

return ×1

serde-json ×1

unit-type ×1