하나의 필드가 다른 것의 완벽한 수퍼 세트 인 여러 쌍의 구조체가 있습니다. 어떤 종류의 상속을 시뮬레이션하고 싶습니다. 그래서 각 코드를 두 배로 늘릴 수 있기 때문에 각각의 구조체에 대해 별도의 사례를 가질 필요가 없습니다. C와 같은 언어에서 컴포지션을 사용한 필드 상속 시뮬레이션
,이 같은 뭔가 필드의 상속을 시뮬레이션 할 수 있습니다 :struct A
{
int a;
};
struct B
{
struct A parent;
int b;
};
main()
{
struct B test1;
struct A *test2 = &test1;
test2->a = 7;
}
내가 녹이 같은 일을하고 싶다. 나는 그와 같은 것을 읽었습니다. here 그러나 그것을 시도했을 때 아직 구현되지 않은 것처럼 보입니다. 별도의 케이스 처리없이 다른 내부의 struct에서 필드를 재사용 할 수있는 방법이 있습니까? 여기
내가 시도 열거 구문입니다enum Top
{
a: i32,
A {},
B {
b: i32
}
}
그리고 이것은 내 오류입니다 : 일부 샘플 실행에
error: expected one of `(`, `,`, `=`, `{`, or `}`, found `:`
--> src/main.rs:3:6
|
3 | a: i32,
| ^expected one of `(`, `,`, `=`, `{`, or `}` here
Link.
"* 때 내가 시도했지만, 아직 구현되지 않은 것 같습니다. * "당신이 시도한 것을 공유하도록 신경을 씁니까? 당신이 만난 오류들? https://play.rust-lang.org/에 올려 놓으십시오. 다른 사람들도 실행할 수 있습니다. – dimo414