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
    

    参考文档:

  • 相关阅读:
    java接口工厂模式理解
    ViewDragHelper的点击事件处理
    ViewDragHelper的使用
    路径跟踪 PathMeasure的简单使用
    view事件分发源码理解
    layoutInflater参数解析与源码分析
    安卓menu的介绍与使用
    安卓广播api介绍,给自己理清楚概念
    动态删除集合遇到的一些问题理解
    【翻译】借助 NeoCPU 在 CPU 上进行 CNN 模型推理优化
  • 原文地址:https://www.cnblogs.com/haycheng/p/13299183.html
Copyright © 2011-2022 走看看