2011-09-13 32 views
21

1 tamsayı değişkenine ve bir tamsayı dizisine sahip olması gereken bir protobuf mesaj oluşturmak zorundayım.Protobuf mesajına int int dizisi nasıl eklenir

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 

} 

Yaklaşımım doğru mu?

cevap

23

Dizisi "tekrarlanan" üzerinden eşleştirilmiş bana

Teşekkür yardım edin:

repeated int32 data = 4; 

Not sint32/uint32 isteyebilirsiniz. Ayrıca, üç durumda da, daha verimli olan "paketlenmiş diziler" kullanılabilir;

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

Çift diziler için de uygun paket dizisi nedir? – javaMan

+0

isteğe bağlı tekrarlanan çift veri yazabilirim = 4 [paketlenmiş = true]; – javaMan

+0

@Ravi evet, IIRC çift iyidir. Ama dizeleri veya alt mesajları değil, IIRC. Tam kapsama için, dil rehberi daha fazla gider. 4'ün üstündeki –