一直在四處尋找,對 golang 還是個新手,PHP 和 ruby 有一個解包函數,可以將二進制文件解包到數組中。我想弄清楚如何在 golang 中執行以下操作。$test = "\01\00\02\03";print_r(unpack("C*", $test)); // [1,0,2,3]或者s = "\01\00\02\03"arr = s.unpack("C*")p(arr) # [1,0,2,3]使用 golang 執行此操作的最佳方法是什么?
1 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
請首先注意,您的 PHP 字符串是由 4 個字節,?,"\01\00\02\03"
組成的字符串,因為它們被解釋為八進制。\x01
\x00
\x02
\x03
"\01"
在 Go 中,語法\01
不正確。與 C 中一樣,八進制序列需要有 3 個數字,即\001
.?因此,PHP 字符串"\01\00\02\03"
在 Go 中"\001\000\002\003"
(在 PHP 中也適用)??紤]到這一點,拆包很容易,不需要像unpack
這樣的特殊功能:
package main
import "fmt"
func main() {
? ? s := "\001\000\002\003"
? ? b := []byte(s)
? ? fmt.Print(b)
}
輸出:
[1 0 2 3]
- 1 回答
- 0 關注
- 139 瀏覽
添加回答
舉報
0/150
提交
取消