나는이 코드가 작동 할 것으로 예상했을 것이다 :이이 일을 올바른 방법이 될 것이라고 생각Go에서 구조체에 배열에 대한 포인터가있는 구조체를 어떻게 가지고 있습니까?
package main
type Item struct {
Key string
Value string
}
type Blah struct {
Values []Item
}
func main() {
var list = [...]Item {
Item {
Key : "Hello1",
Value : "World1",
},
Item {
Key : "Hello1",
Value : "World1",
},
}
_ = Blah {
Values : &list,
}
}
을; 값은 슬라이스이고 list는 배열입니다. & list는 Item []에 할당 할 수있는 슬라이스 여야합니다. 맞습니까? 메시지와 함께
... 대신, 그것은 오류 : C에서cannot use &list (type *[2]Item) as type []Item in assignment
, 당신은 쓸 것 :
struct Item {
char *key;
char *value;
};
struct Blah {
struct Item *values;
};
당신은 어떻게 이동에 그렇게합니까?
나는이 질문을했다 : Using a pointer to array을 ...하지만 어느 응답은 이동의 이전 버전, 또는 그들은 단지 일반 틀렸다. :/
C 코드에 대한 의견이 있습니까? 이 질문에 무관심한 것 같습니다. 이 예는 어떤 언어에서 나왔을 수도 있습니다. 간단히 말해서 '여기 X에서 어떻게 할 것인가? 이걸 이동하는 방법은 무엇입니까?' – Doug
예, 이에 대한 요점이 있습니다. 예를 들어 OP는 Go로 코딩하는 과정에서 Go 배열과 Go 조각에 대한 오해를 불러 일으키는 반면에 C로 생각하는 방법을 보여줍니다. Go의''[] T''는 C의''['v''와 같지 않습니다. 그런 함정에 빠질 유일한 곳은 아닙니다. Go는 C와 많이 닮았지만 실제로 C와는 많은면에서 비슷하지 않습니다. 추신 : 필요한 것 이상으로 복잡한 복합 문자는 C-ism이기도합니다. – zzzz
불필요하게 '당신이 잘못하고있는 것 같아 !!' 응답, 간단한 질문. : – Doug