golang中赋值string到array
来源:互联网 发布:安卓乐器软件 编辑:程序博客网 时间:2024/06/05 20:23
要把一个string赋值给一个array,哥哥遇到一个纠结的困难,研究一番,发现主要原因是array和slice在golang里不是一个东西,本文提供两种解决方案。
在网络编程中network packet transfer,经常要定义固定的字节长度,如下面的f1:
package mainimport "fmt"type T1 struct { f1 [5]byte // I use fixed size here for file format or network packet format. f2 int32}func main() { t := T1{"abcde", 3} // t:= T1{[5]byte{'a','b','c','d','e'}, 3} // work, but ugly fmt.Println(t)}
prog.go:8: cannot use "abcde" (type string) as type [5]uint8 in field value
if I change the line to t := T1{[5]byte("abcde"), 3}
prog.go:8: cannot convert "abcde" (type string) to type [5]uint8
直接用copy(t.f1,"abcde")也是不行的。。因为copy的第一个参数必须是slice,
方案1:利用f1[:],注意,这里f1实际上是一个fixed的array,而f1[:]是一个slice
package mainimport "fmt"type T1 struct { f1 [5]byte f2 int}func main() { t := T1{f2: 3} copy(t.f1[:], "abcde") fmt.Println(t)}
方案2:遍历赋值,不太优美:)
var arr [20]bytestr := "abc"for k, v := range []byte(str) { arr[k] = byte(v)}
the end.
- golang中赋值string到array
- golang url parameters中包含array
- Golang中array和slice的总结
- Golang开发实践:把数据库数据保存到map[string]interface{}中
- java中string对象赋值
- PostGreSQL 中Json Array 赋值方法总结
- ES6---解构赋值number、bool、string、array、function、object
- js中String转Array
- Android中,用string-array
- Android中string-array用法
- java String list转换到array
- golang interface赋值
- golang接口赋值操练
- golang二维切片赋值
- C#中string类型赋值问题
- C#中string类型赋值问题
- C#中string类型赋值问题
- C#中string 类型赋值问题
- Window7下配置JDK
- css制作流程及标准
- java使用序列化实现深克隆
- SDWebImage使用——一个可管理远程图片加载的类库
- 远程访问jboss
- golang中赋值string到array
- 一位ACMer过来人的心得
- C#正则表达式:group和capture
- 201310月报表连接
- 段式存储、页式存储及段页式存储
- Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
- 结构化与非结构化数据库
- 进程同步的几种机制
- COM机制