2011-09-13 7 views
21

Tôi phải soạn thư protobuf cần có 1 biến số nguyên và một mảng nguyên.Cách thêm mảng int vào thông điệp protobuf

package protobuf; 

message myProto { 

optional uint32 message_id =1; 
optional int update = 2; 
//here I have to add a array of integers 
//can I write like  optional int[] array =3; 
//or should I use  optional repeated array; 
//where array is another message with int variable 

} 

Cách tiếp cận của tôi có đúng không? Xin hãy giúp tôi

Cảm ơn

Trả lời

23

Mảng được ánh xạ qua "lặp đi lặp lại":

repeated int32 data = 4; 

Lưu ý bạn có thể muốn sint32/uint32. Cũng lưu ý rằng trong cả ba trường hợp "mảng đóng gói" có thể được sử dụng, có hiệu quả hơn;

repeated int32 data = 4 [packed=true]; 
+0

là khái niệm mảng được đóng gói áp dụng cho mảng đôi? – javaMan

+0

Tôi có thể ghi dữ liệu kép lặp lại tùy chọn = 4 [đóng gói = true]; – javaMan

+0

@Ravi có, IIRC đôi là tốt. Nhưng không phải chuỗi hoặc tin nhắn phụ, IIRC. Để được bảo hiểm đầy đủ, hướng dẫn ngôn ngữ sẽ được sử dụng nhiều hơn. –