2014-07-17 11 views
5

Golang kullanarak bir paket protokolü yazmaya çalışıyorum. Protokolün sabit bir uzunluğu olacağından, tam bellek miktarını tahsis etmek için iyi bir başlangıç ​​noktası gibi görünüyor. Örneğin.Golang: Dilimleme ve doldurulan bayt dizileri

packet := make([]byte, 1024) 

Anlamadığım şey, o paketin belirli öğelerinin nasıl doldurulacağıdır. Söylemek istediğim bir şey gibi: -

slice = pointer(packet[512]) 
slice = []byte("abcdef") 

o paket [512: 518] olmanın sonucudur ("abcdef") == [] bayt. Arrays and Slices hakkında okuduğum dokümanlar, bir bayttaki bir baytın nasıl değiştirileceğini, ancak bitişik bir bayt dizisinin nasıl değiştirileceğini gösterir. Bunu yapmak için bir yöntem var mı?

cevap

8

Bunu yapamazsınız. Anlatabileceğim en yakın yol kopya kullan. kontrol edin: http://play.golang.org/p/PtGJuVgEjc

+1

ve hatta geçici dilim gerekmez: aslında istediğim tam olarak ne yapar Yani – JimB

+0

@JimB sayesinde:' kopyası ("abcde" dilim [512]). Teşekkürler! – chendesheng

+1

işaret için ' –