Struct 在rust中添加不同类型的结构意味着什么?

Struct 在rust中添加不同类型的结构意味着什么?,struct,rust,add,Struct,Rust,Add,我想了解的是什么是lc=lc+(cur,b.0) 我在gdb中得到了这个: (gdb) pt cur type = struct pairing::bls12_381::fr::Fr ( pairing::bls12_381::fr::FrRepr, ) (gdb) pt b type = struct jubjub::Bit { bellman::Variable __0; jubjub::Assignment<bool> __1; } * (gdb) pt l

我想了解的是什么是
lc=lc+(cur,b.0)

我在gdb中得到了这个:

(gdb) pt cur
type = struct pairing::bls12_381::fr::Fr (
  pairing::bls12_381::fr::FrRepr,
)
(gdb) pt b
type = struct jubjub::Bit {
    bellman::Variable __0;
    jubjub::Assignment<bool> __1;
} *
(gdb) pt lc
type = struct bellman::LinearCombination<pairing::bls12_381::Bls12> (
  alloc::vec::Vec<(bellman::Index, pairing::bls12_381::fr::Fr)>,
)
(gdb)
(gdb)pt cur
类型=结构配对::bls12_381::fr::fr(
配对::bls12_381::fr::FrRepr,
)
(gdb)pt b
类型=结构jub::位{
贝尔曼::变量u0;
朱布::分配uuu 1;
} *
(gdb)pt lc
类型=结构bellman::LinearCombination(
alloc::vec::vec,
)
(gdb)

虽然我知道这是关于整数的,但我绝对不理解3种不同类型之间的加法。我的意思是,由于我来自python或Java语法,我一点也不理解(也不理解可以添加的是成员而不是结构本身)。

有一个
impl std::ops::Add
for
LinearCombination
将这种元组定义在
LinearCombination
的某个地方。实现
std::ops::Add
允许您编写
foo+bar
@user2722968是的,但是在任意类型上执行它的定义是什么?另外,我读错了
(cur,b.0)
不是一个加法,那么它是什么意思呢?代码
lc+(cur,b.0)
desugas to
。add((cur,b.0))
。在
行李员
(cur,b.0)
中有一个impl for
Add
,其中右侧是
(Engine::Fr,Variable)
,是一个元组,很可能是
(Engine::Fr,Variable)
,其中
Engine::Fr
是通过
Engine
实例定义的内容。对于
LinearCombination
有一个
impl std::ops::Add
,它在
LinearCombination
的来源处定义了这种元组类型。实现
std::ops::Add
允许您编写
foo+bar
@user2722968是的,但是在任意类型上执行它的定义是什么?另外,我读错了
(cur,b.0)
不是一个加法,那么它是什么意思呢?代码
lc+(cur,b.0)
desugas to
。add((cur,b.0))
bellman
(cur,b.0)
中有一个impl for
Add
,右边是
(Engine::Fr,Variable)
,其中
Engine::Fr
是一个元组,很可能是
(Engine::Fr,Variable)
,其中
Engine::Fr
是通过
Engine
实例定义的任何内容。