2015-11-13 09:30

# golang结构数组转换

I have structs like below:

``````type Foo struct{
A string
B string
}

type Bar struct{
C string
D Baz
}

type Baz struct{
E string
F string
}
``````

Lets say I have `[]Bar`, how to convert this to `[]Foo` ?

`A` should be `C`

`B` should be `E`

#### 图片转代码服务由CSDN问答提供 功能建议

``` ``` type Foo struct {
A字符串
B字符串
}

type条形结构{
C字符串
D Baz
}

type Baz结构{
E字符串
F字符串
}
<  / code>

我说我有 [] Bar ，如何将其转换为 [] Foo ？ \  n
A 应该是 C

B 应该是 E <  / code>
``````
` `
``` 写回答 好问题 提建议 关注问题 收藏 分享 邀请回答 ```
``` 2条回答 默认 最新 douyao1994 2015-11-13 09:37 已采纳 I don't think there's any "magic" way of doing the conversion. However, it is a very small piece of coding to create it. Something like this ought to do the trick. func BarsToFoos(bs []Bar) []Foo { var acc []Foo for _, b := range bs { newFoo := Foo{A: b.C, B: b.D.E} // pulled out for clarity acc = append(acc, newFoo) } return acc } 已采纳该答案 评论 解决 无用 打赏 分享 举报 dongxi1680 2015-11-13 12:12 For example, concisely mininimizing memory allocations and use, package main import "fmt" type Foo struct { A string B string } type Bar struct { C string D Baz } type Baz struct { E string F string } func FooFromBar(bs []Bar) []Foo { fs := make([]Foo, 0, len(bs)) for _, b := range bs { fs = append(fs, Foo{ A: b.C, B: b.D.E, }) } return fs } func main() { b := []Bar{{C: "C", D: Baz{E: "E", F: "F"}}} fmt.Println(b) f := FooFromBar(b) fmt.Println(f) } Output: [{C {E F}}] [{C E}] 评论 解决 无用 打赏 分享 举报 报告相同问题？ 提交 关注问题 相关推荐 更多相似问题 golang结构数组转换 2015-11-13 09:30 回答 2 已采纳 I don't think there's any "magic" way of doing the conversion. However, it is a very small piece o 如何从golang的数组中提取字符？ 2017-08-21 07:49 回答 2 已采纳 Start by seeding the pseudorandom number generator. For example, package main import ( "fmt" 在Golang中将int数组转换为字节数组 2016-08-29 08:54 回答 1 已采纳 You may use fmt.Fprint, as this simplified working sample: package main import ( "bufio" golang 自定义结构数组排序 2021-04-24 16:55 漂泊的树叶的博客 客户端Unity3d，服务端Golang 欢迎同志撩我哈。 最近在做棋牌十三水，牵扯到自定义数组排序， 网上搜了一大圈，各种牛鬼蛇神的写法。 实现是实现了，但是用起来贼麻烦， 无奈，点根烟，然后查看sort源码，发现有个... Golang中数组和切片的区别与联系 2021-07-20 22:45 Data-Mining的博客 数组是用来存储一组相同数据类型的数据结构。从这一点上来讲，Golang和其他语言区别不大。 区别主要发生在语法上，比如Golang声明一个数组的语法格式如下： var 数组名称 [长度]数据类型 举例：声明一个长度为... golang之数组与切片使用与详解 2020-03-30 21:01 fans king的博客 文章目录数组与切片数组类型决定初始化方式遍历迭代多维数组切片初始化扩容拷贝 数组与切片 数组 go语言中数组与其他语言特性几乎没有不同，都是一段连续的内存地址，并且是定长的，类型是确定的。但又一点不同，在... 在golang中将数组插入json对象 json 2018-03-18 06:13 回答 1 已采纳 The solution is not to unescape the string, but to marshal the complete structure you want to seri Golang和结构数组的结构 2017-05-10 13:09 回答 1 已采纳 Use an interface: type identifiable interface { GetID() string } type identifiables interfac 在Golang中替换数组结构中的数据 2019-03-03 02:14 回答 2 已采纳 Your logic assumes that the length of a is always the proper count to conditionally iterate throug golang 数组 最后一个_Golang总结（2） 2020-10-28 22:05 weixin_39612038的博客 在64位结构的机器上，一个切片需要24个字节，指针字段8字节，长度和容量分别需要8字节，由于与切片关联的数据包含在底层数组里面，不属于切片本身，所以将切片复制给人以数组时对底层数组大小都不会有影响。... Golang基础-数据结构-数组（array） 2020-10-06 17:36 小羊爱吃肉的博客 数组的定义 var 变量名[元素数量(长度)]元素类型 例如： var a [5]int var b [4]int 注意： 1.数组是多个相同类型数据的组合，一个组合一旦声明或定义，其长度是固定的，不能动态变化 2.数组中的元素可以是任何数据... 【golang】数组和切片 2018-04-18 13:19 小辣抓的博客 在golang中，有一个“罕见”的复合类型，叫切片，切片是基于数组的，golang和其它语言不一样，在golang中，数组是不可变的，对数组进行类型转换等操作都会导致golang隐式的申请一块内存，然后将原数组的内容复制到... Golang类型断言数组 2017-12-27 08:57 回答 1 已采纳 Your question is unclear, but it appears to boil down to the following: By default, json.Unmarsha 跳过Golang中数组的第一个元素 2016-05-25 06:23 回答 4 已采纳 Yes. Use this for _, val := range Arr[1:] { // something have to do with val } Or s = len(Arr 在Golang中填充结构数组 2015-01-17 15:33 回答 2 已采纳 Something like below package main import "fmt" func main() { type NeoCoverage struct { goLang中数组-切片-map等值的传递方式 2019-04-04 00:32 杨澄的博客 新手常常被golang中的值传递和指针传递而搞的很困惑。 这里总结一下，其实只要把握两点。 golang默认都是采用值传递，即拷贝传递 有些值天生就是是指针 值传递和引用传递 最简单的传进去一个字符串 func... golang中字符串与数组，切片的转换 2021-10-28 17:53 人生30一道坎的博客 1) 字符串是常量，可以通过类似数组的索引访问其字节单元，但是不能修改某个字节的值 var a = "hello,world" b := a[0] a[1]='a' package main import "fmt" func main() { var a = "hello , world" b := ... golang 数组 切片 循环 range 注意 2020-11-13 17:35 技术为辅，市场为王的博客 = v } fmt.Println("s = ", s) fmt.Println("b = ", b) /* 输出 s = [1 12 13 4 5] b = [1 12 13 4 5] 解析： 切片在 go 的内部结构有一个指向底层数组的指针，当 range 表达式发生复制时，副本的指针依旧指向原底 ... golang将字节数组转换为结构 2015-07-21 01:50 回答 3 已采纳 Given that you are using a private protocol. It's a good idea to implement your own protocol. Ther Golang数组和切片区别及切片扩容 2021-05-17 19:36 Turbock的博客 1. 内部结构 1.1. 数组 Array 先说一下数组, 的确在 Go 语言中, 因为 slice 的存在, 使得 array 的出场率不高。但想要很好的理解 slice, 还是要先要了解 array. Go 语言的数组和其他语言一样, 没有什么特别的地方, ... 没有解决我的问题, 去提问```
``` 点击登录 提问题 ◇ 欢迎建议意见◇ 回答问题能得到什么？◇ 如何写出高质量提问和回答？◇ 问答帮助中心◇ 问答公告 加急问题 ¥200 在调取美团联盟开放平台的poi时，出现问题要添加appkey白名单，要如何解决。 ¥200 被迫升级Windows11之后打游戏总是卡屏蓝屏 ¥100 python html 文件 用打印机打印出来 ¥100 GA—bp模型拟合效果极差 ¥100 ar0230在高温、低照度下图像泛红 ¥100 STM32F4xx 使用DMA_ >>"TIM2和TIM5"<< _PWM无法点亮灯带ws2812问题？？ ¥100 paddleseg里面的cityscapesScripts数据集怎么跑通 ¥100 如何利用opencv读取视频流每帧图像特定位置的数据？ ¥100 如何实现手机远程控制手机 ¥100 神经网络信号调制类型识别2/4psk fsk ask ```
``` ```
``` window.csdn.sideToolbar = { options: { afterFinished: function () { setTimeout(function () { var helphtml = '<a class="option-box" data-type="help" href="https://ask.csdn.net/questions/7441224" target="_blank">'+'<img src="https://g.csdnimg.cn/side-toolbar/2.5/images/bangzhucopy.png" alt="" srcset="">'+ '<span class="show-txt">帮助</span></a>'; \$('.csdn-side-toolbar > a:last').before(helphtml); }, 300); }, contentEl: document.getElementsByClassName('floor')[0] } } ```