国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Go新項目-配置文件的選取及區(qū)別和寫法(1)

這篇具有很好參考價值的文章主要介紹了Go新項目-配置文件的選取及區(qū)別和寫法(1)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Go新項目-配置文件的選取及區(qū)別和寫法(1),Go,golang,windows,開發(fā)語言

先說結(jié)論:我們選型TOML

yaml,toml,json,ini 實際業(yè)務(wù)都有用

實際栗子是:我們想要把Go的切片作為配置文件,YAML寫起來比較吃力,TOML就很容易了。

配置文件是用于配置計算機程序的參數(shù)、初始化設(shè)置的文件、業(yè)務(wù)數(shù)據(jù)公共配置等。如果沒有這些配置,我們的程序就會硬編碼,不夠靈活

配置文件的作用主要是給即將運行的程序提供初始值,凡是在環(huán)境發(fā)生改變時需要修改的選項就可以設(shè)置成配置項。

配置文件流行分為這幾類

  • TOML 結(jié)合了 INI 和 YAML 的優(yōu)點

    • TOML 的寫法和 ini 幾乎一致,切換成本為 0 ;
    • 支持所有的 YAML 數(shù)據(jù)類型,甚至支持時間格式;
    • 支持像 ini 的 section 分組,只是在 TOML 中,它叫做 table;
    • 解析像 YAML 那樣簡單。
    • 支持bool、int、float、字符串、字符串?dāng)?shù)組
  • YAML (縮進怪)

    • 容易閱讀和修改,支持注釋。
    • 支持豐富的數(shù)據(jù)類型,對象、數(shù)組、純量
      • 對象:鍵值對的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
      • 數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)
      • 純量(scalars):單個的、不可再分的值;字符串、bool、int、float、Null、時間、日期
    • 不同格式的明確表達。
    • 強制縮進。雖然不規(guī)定具體縮進幾個空格,但是同一級的內(nèi)容要保持相同的縮進。
    • 冒號后面一定要加空格,否則無法解析。
  • INI

    • 比較適合配置項的數(shù)據(jù)類型只是簡單的字符串、數(shù)字的情況,如果涉及數(shù)組和 key/value 的嵌套,會比較吃力。
    • section 無法嵌套, 嵌套后的效果和沒有嵌套是一樣的。
    • 字符串的表示不要加引號,否則引號也會被解析出來。
  • JSON

    • 不支持注釋
    • 花括號多,影響可讀性
  • XML

    • 業(yè)務(wù)不常用

什么要的配置文件格式是好格式

  • 容易閱讀和修改、最好支持注釋。 所以 json 不是一種好的格式。
  • 易于解析,支持多數(shù)據(jù)類型。 INI 和 xml 不合適。
  • 不同格式用不同的表達。 YAML 和 TOML 做得非常好。

針對各自的使用做示例和對比

TOML

參考地址:github:https://github.com/toml-lang/toml
中文:https://github.com/LongTengDao/TOML/blob/龍騰道-譯/toml-v1.0.0.md

# 例子
[analysis]
    # 全基因分析
    whole_genome = ["WGS", "childWGS", "WGS-HD"]
YAML

github:https://github.com/go-yaml/yaml文章來源地址http://www.zghlxwxcb.cn/news/detail-799715.html

# 例子
# 項目根目錄
root: "/mnt/project/bap"

# cors allow address
allow_origins:
  - "http://127.0.0.1:8080"

# 批量計算及多重樣本寫結(jié)論并發(fā)數(shù)
analysis:
  multiple_analysis: 50
  multiple_write: 30
  full_exon: 5
  whole_genome: 5

將yaml配置內(nèi)容解析到map對象中

如果不定義struct進行Unmarshal,可以直接聲明一個map對象:

resultMap := make(map[string]interface{}),代替struct 結(jié)構(gòu)體來進行解析。

INI
# 例子
; A comment line
[Section]
enabled = true
path = /usr/local # another comment

JSON
# 例子
{
    "enabled": true,
    "path": "/usr/local"
}
XML
# 例子
<?xml version="1.0" encoding="UTF-8" ?>
<Config>
   <enabled>true</enabled>
   <path>/usr/local</path>
</Config>

到了這里,關(guān)于Go新項目-配置文件的選取及區(qū)別和寫法(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Go新項目-Golang使用RemoteAddr()獲取遠程主機地址的注意事項(9)

    Go新項目-Golang使用RemoteAddr()獲取遠程主機地址的注意事項(9)

    http.Request 下的方法RemoteAddr() 可以獲取客戶端的地址和端口號,最近的一個項目中用到了這個方法。 使用過程中一直都沒有什么問題,但是當(dāng)項目上線之后就發(fā)現(xiàn)不管怎么獲取ip,客戶端地址都是127.0.0.1 。 對于這個問題一直百思不得其解,最后搞了半天才發(fā)現(xiàn)是nginx 的原因。

    2024年01月20日
    瀏覽(20)
  • 微信小程序(一)小程序與web開發(fā)的區(qū)別&創(chuàng)建新項目

    微信小程序(一)小程序與web開發(fā)的區(qū)別&創(chuàng)建新項目

    1.小程序的開發(fā)準(zhǔn)備 1.1小程序的安裝與創(chuàng)建 1.1.1 生產(chǎn)appid 前往小程序官網(wǎng),注冊(不贅述了);登錄上去之后,需要獲得小程序的appid 由于后期調(diào)?微信?程序的接?等功能,需要索取開發(fā)者的?程序中的 APPID ,所以在注冊成功后, 可登錄,然后獲取APPID。 登錄成功后可看

    2024年02月12日
    瀏覽(21)
  • [每周一更]-(第83期):Go新項目-Gin中間件的使用和案例(10)

    [每周一更]-(第83期):Go新項目-Gin中間件的使用和案例(10)

    在 Gin 中,中間件是一種用于處理 HTTP 請求和響應(yīng)的功能強大的機制。中間件是一段位于請求處理鏈和最終處理器之間的代碼, 它可以截獲請求、執(zhí)行預(yù)處理操作,修改請求或響應(yīng),然后將控制權(quán)傳遞給下一個中間件或最終的請求處理器。 中間件在業(yè)務(wù)使用中,方便注入一些

    2024年01月20日
    瀏覽(26)
  • pycharm創(chuàng)建新項目,項目文件夾中沒有venv文件夾

    pycharm創(chuàng)建新項目,項目文件夾中沒有venv文件夾

    pycharm創(chuàng)建項目沒有venv_pycharm不能新建怎么辦問題 實現(xiàn)步驟一、首先使用pycharm打開項目,發(fā)現(xiàn)項目中不存在venv環(huán)境。 二、file–setting–project–projectinterpreter–新建環(huán)境 三、 Virtualenv Environment -- new environment ? ?

    2024年02月16日
    瀏覽(97)
  • 搭建新項目 前端環(huán)境 及啟動項目前的相關(guān)配置

    搭建新項目 前端環(huán)境 及啟動項目前的相關(guān)配置

    ** ** 提示:這里可以添加本文要記錄的大概內(nèi)容: 搭建新項目 前端環(huán)境 下圖所示為開發(fā)時前端所用的編輯器 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 注意:在配置時 有時候 localhost 可能 不太好用,所以我們 最好配置 成 127.0.0.1 指向我們的電腦 代碼如下(示例

    2024年01月23日
    瀏覽(89)
  • 新項目搞完啦!?。? decoding=

    新項目搞完啦?。?!

    大家好,我是魚皮。 經(jīng)過了 7 場直播,總時長近 20 小時,我在 自己的編程導(dǎo)航 的第 5 個 全程直播開發(fā) 的項目 —— 智能 BI 項目,完結(jié)啦! 我在這里對該項目做一個簡單的總結(jié),希望讓更多需要它的同學(xué)看到,把它變成自己的項目~ 這次做的是一個順應(yīng)潮流的項目, 基于

    2024年02月11日
    瀏覽(94)
  • Gitlab 新項目搭建

    Gitlab 新項目搭建

    項目名稱與本地新建項目名稱相同 進入本地項目根目錄下,右擊 git bash here打開命令窗口; 初始化本地倉庫; 提交至?xí)捍鎱^(qū); 提交項目。 建立本地倉庫和遠端 Gitlab 倉庫關(guān)系; 2.拉取一下遠程倉庫內(nèi)容; 推送本地內(nèi)容到遠程倉庫。 出現(xiàn)以下問題: 原因就是 Gitlab 的倉庫中

    2024年02月13日
    瀏覽(94)
  • 筆記 | FastAPI創(chuàng)建新項目

    筆記 | FastAPI創(chuàng)建新項目

    當(dāng)使用FastAPI創(chuàng)建項目時,首先需要安裝FastAPI和其依賴項??梢允褂胮ip來安裝它們。請確保已經(jīng)安裝了Python和pip。 創(chuàng)建項目文件夾并進入該文件夾: 創(chuàng)建并激活一個新的Python虛擬環(huán)境(可選,但強烈推薦): 安裝FastAPI和uvicorn(FastAPI的服務(wù)器): 創(chuàng)建一個名為 main.py 的文件

    2024年02月06日
    瀏覽(99)
  • 新項目如何推送Git

    新項目如何推送Git

    一、在git新建一個空的倉庫,不用任何模版,直接創(chuàng)建即可 完成后,copy倉庫地址 二、本地新建項目,進入到本地項目命令行,也可以打開終端,其實是相通的:執(zhí)行命令git init, 此時在項目上右擊就發(fā)想有g(shù)it選項,點擊add添加,接著正常commit,然后push 在push的時候會發(fā)現(xiàn)有

    2024年02月12日
    瀏覽(93)
  • idea新項目上傳git

    idea新項目上傳git

    關(guān)于idea新項目怎么上傳到git,今天整理一下操作的步驟。來做一個記錄! 1.首先要在項目上右擊打開終端或者在idea的下方有一個快捷按鈕 按照上面的截圖進行操作,打開終端窗口 2.然后在終端窗口中輸入 git init 命令,會出現(xiàn)如圖樣子 3.然后右擊項目會出現(xiàn)git的選項,然后按

    2024年02月12日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包