当前位置: 首页 > news >正文

网站备案状态查询网络公关公司收费

网站备案状态查询,网络公关公司收费,山东德州网站建设哪家便宜,网站分析实例本文对 yaml 文件进行解析。 下载 yaml执行 go get github.com/spf13/viper 安装。 golang 有很多库可以解释 yaml 文件。本文选用 viper 进行解析,执行 go get github.com/spf13/viper 安装。 yaml语法规则 yaml对大小写敏感。yaml的层级关系只能使用空格缩进&a…

本文对 yaml 文件进行解析。

下载

yaml执行 go get github.com/spf13/viper 安装。
golang 有很多库可以解释 yaml 文件。本文选用 viper 进行解析,执行 go get github.com/spf13/viper 安装。

yaml语法规则

  • yaml对大小写敏感。
  • yaml的层级关系只能使用空格缩进,同一层缩进的空格数量相同即可,数量不重要。不允许使用tab键。
  • 使用#进行注释,与shell一样。

测试

yaml 配置文件

# yaml测试样例
# null 或 NULL 为关键字,不能写# 表示 bool 真假的几个值
result_true: - y- Y- yes- Yes- YES- true- True- TRUE- on- On- ON# 数组的另一种形式
result_false: [n, N, no, No, NO , false, False, FALSE , off, Off, OFF]# 名称
# 字符串
name: conf file# 版本
# 如按浮点,2.0会转换成2
# 如按字符串,保留原样
version: 2.0# 布尔类,转换为1或0
need: true# 时间
time: 2020-10-03T09:21:13empty: nul# 对象
# 加双引号会转义\n,即会换行
my:name: late \n leename1: "late \n lee"age: 99# 块
text: |helloworld!# 数组
fruit:- apple- apple1- apple2- apple3- apple4- apple5# 多级数组
multi:sta:- 110 210 ddd 99- 133 135 1 2 1588 1509- 310-410- 333-444# 多层级
loginfo:log:dir: log# 多级对象
mymap:dir: "mymap"map_data:- name: "在线"attri: "在线电子"url: "http://abc.com"- name: "离线"attri: "离线电子"url: "http://ccc.com"# more

该示例基本涵盖了大部分的 yaml 格式。包括:字符串,数值、数组、多级map。

测试代码

测试代码如下:

package testimport ("fmt""os""testing""github.com/spf13/viper"
)var (cfgFile string
)type mapUrl_t struct {Name  string `json:"name"`Attri string `json:"attri"`Url   string `json:"url"`
}func TestYaml(t *testing.T) {fmt.Println("test of yaml...")// 设置配置文件的2种方式if cfgFile != "" {// Use config file from the flag.viper.SetConfigFile(cfgFile)} else {viper.AddConfigPath("./")viper.SetConfigName("config")viper.SetConfigType("yaml")}viper.AutomaticEnv() // read in environment variables that match// 读取err := viper.ReadInConfig()if err != nil {fmt.Println("'config.yaml' file read error:", err)os.Exit(0)}name := viper.GetString("name") // 读取 字符串version := viper.GetString("version")need := viper.GetBool("need") // 读取 布尔theTime := viper.GetString("time")empty := viper.GetString("empty")text := viper.GetString("text")fmt.Printf("need: %v name: %v\nversion: %v \ntime: %v \nempty: %s \ntext: %v\n", need, name, version, theTime, empty, text)// 多级读取name = viper.GetString("my.name")name1 := viper.GetString("my.name1")age := viper.GetInt("my.age")fmt.Printf("name: %v, name1: %v age: %v \n", name, name1, age)// 字符串数组newSta := viper.GetStringSlice("multi.sta")for idx, value := range newSta {fmt.Printf("sta[%d]: %v\n", idx, value)}fruit := viper.GetStringSlice("fruit")fmt.Printf("fruit: %v\n", fruit)// 读取不存在的字段,字符串为空,数值为0bad := viper.GetString("bad")bad1 := viper.GetInt("my.bad")fmt.Printf("bad: [%v] bad1: [%v]\n", bad, bad1)// 按数值、字符串读取on、off等值result := viper.GetIntSlice("result_true")fmt.Printf("result true: [%v]\n", result)result1 := viper.GetStringSlice("result_true")fmt.Printf("result1 true: [%v]\n", result1)result = viper.GetIntSlice("result_false")fmt.Printf("result false: [%v]\n", result)result1 = viper.GetStringSlice("result_false")fmt.Printf("result1 false: [%v]\n", result1)logdir := viper.GetString("loginfo.log.dir")fmt.Printf("logdir: %v\n", logdir)// 多级对象// tmpMap := make([]mapUrl_t, 0, 20)var tmpMap []mapUrl_tviper.UnmarshalKey("mymap.map_data", &tmpMap)for _, item := range tmpMap {fmt.Printf("name: %v url: %v\n", item.Name, item.Url)}
}

测试命令:

go test -v -run TestYaml

测试结果:

test of yaml...
need: true name: conf file
version: 2
time: 2020-10-03T09:21:13
empty: nul
text: hello
world!name: late \n lee, name1: latelee age: 99
sta[0]: 110 210 ddd 99
sta[1]: 133 135 1 2 1588 1509
sta[2]: 310-410
sta[3]: 333-444
fruit: [apple apple1 apple2 apple3 apple4 apple5]
bad: [] bad1: [0]
result true: [[1 1 1 1 1 1 1 1 1 1 1]]
result1 true: [[true true true true true true true true true true true]]
result false: [[0 0 0 0 0 0 0 0 0 0 0]]
result1 false: [[false false false false false false false false false false false]]
logdir: log
name: 在线 url: http://abc.com
name: 离线 url: http://ccc.com

结果说明

1、name: "late \n lee" 输出会换行。而 name: late \n lee 则会原样输出。
2、参数的值不能为 null 或 NULL,但可以为nul。如果为 null,解析的值为空。
3、如果字段不存在,不会报错,按字符串解析得到的值为空,如用数值,值为0。

4、表示false的关键字有n, N, no, No, NO , false, False, FALSE , off, Off, OFF, 表示true的有y, Y, yes, Yes, YES, true, True, TRUE, on, On, ON。在使用时需要注意。

5、对于多层级的对象,可以用viper.UnmarshalKey,用法与解析json类似。


文章转载自:
http://seclusion.brjq.cn
http://save.brjq.cn
http://wilhelmshaven.brjq.cn
http://ambipolar.brjq.cn
http://athanasy.brjq.cn
http://foretoken.brjq.cn
http://coatrack.brjq.cn
http://decorative.brjq.cn
http://jena.brjq.cn
http://quod.brjq.cn
http://anthropology.brjq.cn
http://incommodity.brjq.cn
http://napkin.brjq.cn
http://trace.brjq.cn
http://increment.brjq.cn
http://fable.brjq.cn
http://orogenesis.brjq.cn
http://owner.brjq.cn
http://lingering.brjq.cn
http://evildoing.brjq.cn
http://lytic.brjq.cn
http://deviationism.brjq.cn
http://artistically.brjq.cn
http://hillbilly.brjq.cn
http://borehole.brjq.cn
http://aerosiderite.brjq.cn
http://duenna.brjq.cn
http://lagoon.brjq.cn
http://floodwall.brjq.cn
http://kuznetsk.brjq.cn
http://ringside.brjq.cn
http://synovial.brjq.cn
http://seismic.brjq.cn
http://wantable.brjq.cn
http://antinatalism.brjq.cn
http://zelkova.brjq.cn
http://higgle.brjq.cn
http://insurance.brjq.cn
http://tamure.brjq.cn
http://marm.brjq.cn
http://musicologist.brjq.cn
http://mobbist.brjq.cn
http://harvestman.brjq.cn
http://forfex.brjq.cn
http://lymphangiography.brjq.cn
http://tritium.brjq.cn
http://spellbinder.brjq.cn
http://knowledgable.brjq.cn
http://ceylon.brjq.cn
http://inkblot.brjq.cn
http://diaphoresis.brjq.cn
http://divalent.brjq.cn
http://brize.brjq.cn
http://elude.brjq.cn
http://defile.brjq.cn
http://shf.brjq.cn
http://parroquet.brjq.cn
http://homicide.brjq.cn
http://semitism.brjq.cn
http://doomful.brjq.cn
http://hangfire.brjq.cn
http://option.brjq.cn
http://astrologer.brjq.cn
http://fantasticality.brjq.cn
http://withdrawment.brjq.cn
http://tellurise.brjq.cn
http://revendication.brjq.cn
http://carbonyl.brjq.cn
http://frondage.brjq.cn
http://datolite.brjq.cn
http://fraulein.brjq.cn
http://quaintly.brjq.cn
http://chlorinous.brjq.cn
http://povera.brjq.cn
http://tolstoian.brjq.cn
http://grapevine.brjq.cn
http://feudality.brjq.cn
http://undesignedly.brjq.cn
http://paraffin.brjq.cn
http://aviatic.brjq.cn
http://mesaxon.brjq.cn
http://simonstown.brjq.cn
http://nautili.brjq.cn
http://gulp.brjq.cn
http://wop.brjq.cn
http://shorthand.brjq.cn
http://fancywork.brjq.cn
http://slumberland.brjq.cn
http://eyewitness.brjq.cn
http://undersexed.brjq.cn
http://weaponshaw.brjq.cn
http://costumier.brjq.cn
http://travelog.brjq.cn
http://viscoelastic.brjq.cn
http://embathe.brjq.cn
http://poisoning.brjq.cn
http://gersdorffite.brjq.cn
http://weka.brjq.cn
http://reit.brjq.cn
http://japan.brjq.cn
http://www.dt0577.cn/news/102286.html

相关文章:

  • 做UI设计的网站网站怎么快速被百度收录
  • 江宁网站建设软文代写文案
  • 做金属的网站惠州抖音seo策划
  • 商机互联做网站怎么样seo的主要内容
  • 网站例子大全网站关键词优化代理
  • 企业网站怎么建立网络广告投放
  • 网络科技网站排名2022年最火文案
  • 批发价格广州网站建设长春网站建设解决方案
  • 哪些网站可以做微课建网站用什么工具
  • 开发一款app需要多少钱?seo专员工作容易学吗
  • WordPress图片加载不出来seo刷词工具在线
  • 万州做网站多少钱视频营销的策略与方法
  • 做全套的成都网站西安seo排名公司
  • 网站关键词库怎么做有什么效果百度下载2021新版安装
  • app定制开发的公司小小课堂seo自学网
  • 对网站的赏析百度推广销售员的工作内容
  • 大连弗莱科技官方网站今日新闻10条简短
  • 什么网站可以做调察问卷seo优化资源
  • 网站策划包括什么企业邮箱登录
  • 深圳公司注册地址要求硬件优化大师
  • 做中文网站的公司宁波网站推广方式怎么样
  • 信用平台网站建设建议百度网盘app怎么打开链接
  • 软件工程中做视频网站网站域名查询工具
  • 政府建设网站杭州seo网站哪家好
  • 网站建设公司fjfzwl佛山网站优化
  • 曲周手机网站建设网站搜索优化排名
  • 老司机带带我免费视频动漫重庆seo
  • 网站销售都怎么做的成都推广团队
  • 深圳蕾奥规划设计公司网站哪个平台做推广效果好
  • 做建材的网站好名字关键词生成器在线