标签: tuple-struct

元组结构构造函数抱怨私有字段

我正在研究一个基本的shell解释器,以熟悉Rust.在用于在shell中存储挂起作业的表上工作时,我遇到了以下编译器错误消息:

error: cannot invoke tuple struct constructor with private fields [E0450]
     let jobs = job::JobsList(vec![]);
                ^~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

我不清楚在这里看到什么是私人的.如下所示,两个结构都pub在我的模块文件中标记.那么,秘诀是什么?

mod job {
    use std::fmt;

    pub struct Job {
        jid: isize,
        pid: isize,
        cmd: String,
    }

    pub struct JobsList(Vec<Job>);
}

fn main() {
    let jobs = job::JobsList(vec![]);
}
Run Code Online (Sandbox Code Playgroud)

private rust tuple-struct

19
推荐指数
1
解决办法
5402
查看次数

我怎样才能像经典元组那样解压缩元组结构?

我可以解压这样的经典元组:

let pair = (1, true);
let (one, two) = pair;
Run Code Online (Sandbox Code Playgroud)

如果我有一个元组结构,如果我struct Matrix(f32, f32, f32, f32)尝试解压缩它,我得到一个关于"意外类型"的错误:

struct Matrix(f32, f32, f32, f32);
let mat = Matrix(1.1, 1.2, 2.1, 2.2);
let (one, two, three, four) = mat;
Run Code Online (Sandbox Code Playgroud)

结果出现此错误:

error[E0308]: mismatched types
  --> src/main.rs:47:9
   |
47 |     let (one, two, three, four) = mat;
   |
   = note: expected type `Matrix`
              found type `(_, _, _, _)`
Run Code Online (Sandbox Code Playgroud)

如何解压缩元组结构?我是否需要将其显式转换为元组类型?或者我需要硬编码吗?

struct tuples rust tuple-struct

11
推荐指数
1
解决办法
655
查看次数

元组最多可以使用几个变量?

我听说最多可以使用 7 个变量,但我要求更多。我想知道可以使用的最大变量数。

c# tuple-struct

-1
推荐指数
1
解决办法
213
查看次数

标签 统计

tuple-struct ×3

rust ×2

c# ×1

private ×1

struct ×1

tuples ×1