为了账号安全,请及时绑定邮箱和手机立即绑定

Golang - 将可变长度数组映射到结构

Golang - 将可变长度数组映射到结构

Go
慕桂英4014372 2021-06-15 13:01:14
我有一个结构如下:type MyStruct struct {   Part1 string   Part2 string   Part3 string}我有一个由斜杠分隔的字符串,我想映射到这个:part1/part2/part3但是,字符串可能只包含 1 个部分(例如 part1)或两个部分(例如 part1/part2)如果缺少任何部分,则将其映射为空字符串。我很陌生,所以想知道实现这一目标的最佳方法是什么。通常我会拆分字符串并检查长度以知道该怎么做。在 go 中有更优雅的方法来做到这一点吗?
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

这是 peterSO 解决方案的一个版本,它使用包装器来帮助简化逻辑。


package main


import (

    "fmt"

    "strings"

)


type Wrap []string


func (w Wrap) Get(i int) string {

    if 0 <= i && i < len(w) {

        return w[i]

    }

    return ""

}


type MyStruct struct {

    Part1 string

    Part2 string

    Part3 string

}


func main() {

    str := "part1/part2/part3"

    split := Wrap(strings.Split(str, "/"))

    var parts MyStruct

    parts.Part1 = split.Get(0)

    parts.Part2 = split.Get(1)

    parts.Part3 = split.Get(2)

    fmt.Println(parts)


    str = "part1/part2"

    split = Wrap(strings.Split(str, "/"))

    parts = MyStruct{}

    parts.Part1 = split.Get(0)

    parts.Part2 = split.Get(1)

    parts.Part3 = split.Get(2)

    fmt.Println(parts)

}


查看完整回答
反对 回复 2021-06-21
  • 2 回答
  • 0 关注
  • 283 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信