首頁 > 後端開發 > Golang > 如何將 Go 切片轉換為陣列?

如何將 Go 切片轉換為陣列?

Linda Hamilton
發布: 2024-12-11 12:43:11
原創
480 人瀏覽過

How to Convert a Go Slice to an Array?

在 Go 中將切片轉換為數組

在 Go 中,嘗試直接將切片分配給數組將導致編譯錯誤。本題探討如何將特定長度的切片轉換為陣列。

問題陳述

考慮一個結構體,定義一個帶有由4 個數組組成的Magic 字段的前導塊bytes:

type Lead struct {
  Magic        [4]byte
  Major, Minor byte
  Type         uint16
  Arch         uint16
  Name         string
  OS           uint16
  SigType      uint16
}
登入後複製

任務是使用以下命令將4 個位元組的切片分配給Magic字段語法:

lead := Lead{}
lead.Magic = buffer[0:4] // Attempt to assign slice to array
登入後複製

要將指定長度的切片轉換為數組,Go 提供了以下方法:

將copy()與數組子切片一起使用

內建透過將數組視為切片,可以欺騙copy 函數將切片複製到數組:

copy(varLead.Magic[:], someSlice[0:4])
登入後複製

使用For循環

迭代切片元素並將它們分配給數組elements:

for index, b := range someSlice {
    varLead.Magic[index] = b
}
登入後複製

使用數組文字

另一種方法是直接使用陣列文字:

type Lead struct {
  Magic        [4]byte
  Major, Minor byte
  Type         uint16
  Arch         uint16
  Name         string
  OS           uint16
  SigType      uint16
}

lead := Lead{Magic: [4]byte{0x12, 0x34, 0x56, 0x78}}
登入後複製

以上是如何將 Go 切片轉換為陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板