go文档模式,编译出错,各位道友帮忙看看

meijies · 2017-10-30 12:43:51 · 1422 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-10-30 12:43:51 的主题,其中的信息可能已经有所发展或是发生改变。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1422 次点击  
加入收藏 微博
7 回复  |  直到 2017-10-30 14:41:04
meijies
meijies · #1 · 7年之前
package config

import "strings"

type doc struct {
    value string
    sub   map[string]doc
}

var root = new(doc)

func Add(key string, value string) {
    keys := strings.Split(key, ".")
    var target = root
    for index, subkey := range keys {
        if target.sub == nil {
            target.sub = make(map[string]doc)
            target.sub[subkey] = doc{}
        }
        if index == len(keys)-1 {
            target.sub[subkey].value = value
        } else {
            target = target.sub[subkey]
        }
    }

}

func Get(key string) string {
    keys := strings.Split(key, ".")
    target := root
    for index, subkey := range keys {
        target = target.sub[subkey]
        if index == len(keys)-1 {
            return target.value
        }
    }
    return ""
}
meijies
meijies · #2 · 7年之前

Screenshot from 2017-10-30 20-19-50.png

polaris
polaris · #3 · 7年之前

你这主题正文啥也不放,全放评论……

编译错误信息也不给!

meijies
meijies · #4 · 7年之前
polarispolaris #3 回复

你这主题正文啥也不放,全放评论…… 编译错误信息也不给!

Screenshot from 2017-10-30 21-24-05.png

不好意思,一开始点错了

meijies
meijies · #5 · 7年之前
meijiesmeijies #4 回复

#3楼 @polaris ![Screenshot from 2017-10-30 21-24-05.png](https://static.studygolang.com/171030/4422e36766e679ffb6b378f042c1d71a.png) 不好意思,一开始点错了

github.com/meijies/theme/collection/config
./document.go:21:29: cannot assign to struct field target.sub[subkey].value in map
./document.go:23:11: cannot use target.sub[subkey] (type doc) as type *doc in assignment
./document.go:33:10: cannot use target.sub[subkey] (type doc) as type *doc in assignment
FAIL    command-line-arguments [build failed]
polaris
polaris · #6 · 7年之前

不可寻址,得定义为:

type doc struct {
    value string
    sub   map[string]*doc
}

PS: 点错了可以编辑,不能编辑,可以【附言】补充。

另外,学习下 markdown 语法

meijies
meijies · #7 · 7年之前

@polaris 谢谢,问题解决了

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传