zoukankan      html  css  js  c++  java
  • YAML文件(.yml)中的键(key)通过变量引用来设置

    通过变量引用设置配置量的【值(value)】

    在YAML文件中,一个配置量的可以通过引用另一个变量来设置。例如:

    default-db:
      port: 3306
    
    user-db:
      port: ${default-db.port}
    

    但是,如果想通过变量引用设置,通过${}是做不到的。例如:

    site:
      url:
        user: www.user.net
        shop: www.shop.net
    
    site:
      slogan:
        ${site.url.user}: everyone is great!
        ${user.url.shop}: buy anything you want!
    

    在将配置读入程序中之后,你会发现上述的${}引用,并没有替换成真正的值。

    通过锚点引用设置配置量的【键(key)】

    要想替换键,则需要用到锚点。锚点用符号“&”定义,并用符号“*”进行引用。
    锚点有两种使用方式,一是通过“<<:”将键值对一起引入

    default-db: &default-db-config
      host: 127.0.0.1
      port: 3306
    
    user-db:
      <<: *default-db-config
    

    其实际效果如:

    default-db:
      host: 127.0.0.1
      port: 3306
    
    user-db:
      host: 127.0.0.1
      port: 3306
    

    说明:&后面的锚点名字,可自己定义,不必与配置量的键相同。

    另一种是仅引入配置的值

    site:
      url:
        user: &site.user www.user.net
        shop: &site.shop www.shop.net
    
    site:
      slogan:
        *site.user: everyone is great!
        *site.shop: buy anything you want!
    

    其实际效果如:

    site:
      url:
        user: www.user.net
        shop: www.shop.net
    
    site:
      slogan:
        www.user.net: everyone is great!
        www.shop.net: buy anything you want!
    

    说明:用&定义锚点时,注意锚点名前后的空格。

    另一个仅引入值例子:

    color:
      - &red-color red
      - yellow
      - blue
      - *red-color
      - gray
    

    其实际效果如:

    color:
      - red
      - yellow
      - blue
      - red
      - gray
    

    参考文档:

  • 相关阅读:
    浅谈单调栈、单调队列
    关于博客迁移
    高二四班抽号
    数据结构
    图论
    洛谷 P3817 小A的糖果
    洛谷 P4016 负载平衡问题
    洛谷 P4306 [JSOI2010]连通数
    洛谷 P4822 [BJWC2012]冻结
    洛谷 P4568 [JLOI2011]飞行路线
  • 原文地址:https://www.cnblogs.com/haycheng/p/13299183.html
Copyright © 2011-2022 走看看