您的位置 首页 golang

解决yaml.v2依赖问题


前言

golang 踩坑,其他博客太坑了

问题

  1. 下载 gopkg.in/yaml.v2
go get gopkg.in/yaml.v2复制代码
  1. 使用 gopkg.in/yaml.v2 官方提供的例子:
package mainimport (	"fmt"	"log"	"gopkg.in/yaml.v2")var data = `a: Easy!b:  c: 2  d: [3, 4]`// Note: struct fields must be public in order for unmarshal to// correctly populate the data.type T struct {	A string	B struct {		RenamedC int   `yaml:"c"`		D        []int `yaml:",flow"`	}}func main() {	t := T{}	err := yaml.Unmarshal([]byte(data), &t)	if err != nil {		log.Fatalf("error: %v", err)	}	fmt.Printf("--- t:\n%v\n\n", t)	d, err := yaml.Marshal(&t)	if err != nil {		log.Fatalf("error: %v", err)	}	fmt.Printf("--- t dump:\n%s\n\n", string(d))	m := make(map[interface{}]interface{})	err = yaml.Unmarshal([]byte(data), &m)	if err != nil {		log.Fatalf("error: %v", err)	}	fmt.Printf("--- m:\n%v\n\n", m)	d, err = yaml.Marshal(&m)	if err != nil {		log.Fatalf("error: %v", err)	}	fmt.Printf("--- m dump:\n%s\n\n", string(d))}复制代码

均会出现问题:

go: finding module for package gopkg.in/yaml.v2main.go:7:2: cannot find module providing package gopkg.in/yaml.v2: unrecognized import path "gopkg.in": parse https://gopkg.in/?go-get=1: no go-import meta tags ()复制代码

解决方法

查看官方文档:labix.org/gopkg.in其中提到:

The actual implementation of the package is in GitHub:https://github.com/go-yaml/yaml复制代码

因此,改用

go get github.com/go-yaml/yaml复制代码

将官方例子的 import 改为:

import (	"fmt"	"log"	"github.com/go-yaml/yaml")复制代码

执行成功:

--- t:{Easy! {2 [3 4]}}--- t dump:a: Easy!b:  c: 2  d: [3, 4]--- m:map[a:Easy! b:map[c:2 d:[3 4]]]--- m dump:a: Easy!b:  c: 2  d:  - 3  - 4复制代码

文章来源:智云一二三科技

文章标题:解决yaml.v2依赖问题

文章地址:https://www.zhihuclub.com/2480.shtml

关于作者: 智云科技

热门文章

发表评论

您的电子邮箱地址不会被公开。

网站地图