文字列を[]byteにして、途中までの配列について
ポインタと取りたいと思ってました。
実際やってみたところエラーになった。
test_str := "aaabbbccc" t_b := []byte(test_str) fmt.Println(&t_b[0:5])
こんなエラーがでる
cannot take the address of t_b[0:5]
だけどそもそもこれって当たり前のことじゃないか。
&[97 97 97 97 97 98 98 98 98 98 99 99 99 99 99]
配列の変数名って配列のポインタが入ってるから
その中から部分的に取り出そうといったってそれは無理。
そういう場合はあらためて部分配列を新しく作ってから
ポインタを取り出す。
part_t_b := t_b[0:5] fmt.Println(&part_t_b)
package main import ( "fmt" ) func main() { test_str := "aaabbbccc" t_b := []byte(test_str) fmt.Println("-----origin") fmt.Println(test_str) fmt.Println(t_b) fmt.Println("-----pointer") fmt.Println(&t_b) //fmt.Println(&t_b[0:5]) fmt.Println(&test_str) part_t_b := t_b[0:5] fmt.Println(&part_t_b) }
-----origin aaabbbccc [97 97 97 98 98 98 99 99 99] -----pointer &[97 97 97 98 98 98 99 99 99] 0xc42000e1d0 &[97 97 97 98 98]
- 作者: 松尾愛賀
- 出版社/メーカー: 翔泳社
- 発売日: 2016/05/11
- メディア: Kindle版
- この商品を含むブログを見る