golang 讀取yml格式,多結構體級聯
1.安裝yml解析包
進入到gopath下執行命令
go get gopkg.in/yaml.v2
2.設定配置檔案config.yml
ipport: 192.168.2.95:10000
startsendtime: 2017-01-02 08:08:08
sendmaxcountperday: 100
devices:
- devid: 123456789
nodes:
- pkid: 0
bkid: 0
index: 0
minvalue: 0
maxvalue: 60
datatype: normal
- pkid: 0
bkid: 0
index: 0
datatype: boolean
- devid: 10001
nodes:
- pkid: 0
bkid: 1
index: 0
datatype: boolean
warnfrequency: 10
sendfrequency: 10
3.編寫測試類
package main
import (
"fmt"
"gopkg.in/yaml.v2"
"io/ioutil"
)
//配置檔案中字母要小寫,結構體屬性首字母要大寫
type Myconf struct {
Ipport string
StartSendTime string
SendMaxCountPerDay int
Devices []Device
WarnFrequency int
SendFrequency int
}
type Device struct {
DevId string
Nodes []Node
}
type Node struct {
PkId string
BkId string
Index string
MinValue float32
MaxValue float32
DataType string
}
func main() {
data, _ := ioutil.ReadFile("config.yml" )
fmt.Println(string(data))
t := Myconf{}
//把yaml形式的字串解析成struct型別
yaml.Unmarshal(data, &t)
fmt.Println("初始資料", t)
if(t.Ipport==""){
fmt.Println("配置檔案設定錯誤")
return;
}
d, _ := yaml.Marshal(&t)
fmt.Println("看看 :", string(d))
}
4.注意
1.配置檔案中字母要小寫,結構體屬性首字母要大寫,開發比較快
也可以指定如:yaml:"c"
,只不過有點麻煩,當然如果重新命名必須要指定
2.yaml:",flow"
這個意思是將陣列用[“a”,”b”]這樣的格式展示,預設展示形式是
- a
- b
相關推薦
golang 讀取yml格式,多結構體級聯
1.安裝yml解析包 進入到gopath下執行命令 go get gopkg.in/yaml.v2 2.設定配置檔案config.yml ipport: 192.168.2.95:100
Golang 之 面向物件struct ,定義結構體方法(二)
package main import "fmt" type treeNode struct { value int left, right * treeNode } // 給結構體定義列印方法,其中(node treeNode)表示該方法的接受者是那個結構體 fun
golang如何漂亮地列印一個結構體,前後端對接方便測試資料
func SmartPrint(i interface{}){ var kv = make(map[string]interface{}) vValue := reflect.Value
C語言中,隱藏結構體的細節
all printf span 包括 strcpy () 創建 提高 結構體指針 我們都知道,在C語言中,結構體中的字段都是可以訪問的。或者說,在C++ 中,類和結構體的主要區別就是類中成員變量默認為private,而結構體中默認為public。結構體的這一個特性,導致結構
C++ 讀取檔案內容到data 結構體 structure
#include <iostream> #include <fstream> #include <stdlib.h> using namespace std; typedef struct { int n; char *data; } BLOCK;
CCF201709-2公共鑰匙盒,用結構體簡單模擬拿取歸還鑰匙過程
試題編號:201709-2 試題名稱:公共鑰匙盒 時間限制:1.0s 記憶體限制:256.0MB 問題描述 有一個學校的老師共用N個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裡,老師不能帶鑰匙回家。每次老師上課前,都從公共鑰匙盒裡找到自己上課的教室的鑰
嵌入式Linux併發程式設計,程序間通訊方式,System V IPC,訊號燈集,建立/開啟semget(),初始化semctl(),P/V操作semop(),sembuf結構體定義
文章目錄 1,System V IPC - 訊號燈 2,System V IPC - 訊號燈特點 3,System V訊號燈使用步驟 3.1,訊號燈建立/開啟 semget() 3.2,訊號燈初始化 semctl()
當函式使用結構體指標變數作為引數時,如果結構體中嵌套了結構體,應該如何呼叫其中的元素?
今天寫程式碼時突然遇到了這個問題,以前不曾探討過多層巢狀結構體指標變數的訪問,只知道結構體指標變數要訪問其元素時應該用 -> 來訪問,但對於結構體中巢狀有結構體的時候呢? 請看下面程式碼: #include “stdio.h” using namespac
Golang的面向物件程式設計【結構體、方法、繼承、介面】
Golang也支援面向物件程式設計。但與以前學過傳統的面向物件程式語言有區別。 1)Golang沒有類class,Go語言的結構體struct和類class有相似的特性。 2)Golang中不存在繼承,方法過載,建構函式,解構函式,隱藏和this指標。 3)Go
c中全域性變數,全域性結構體使用
1)在A中定義的函式,如何在B中呼叫? 如果有標頭檔案,在標頭檔案中宣告,在B檔案中#include標頭檔案就可以了。 如果是在.c檔案中宣告的,在B中加extent宣告:extern void timer_hw_init(void); 2)在A中定義的結構體及變數,如何在
46,指向結構體的指標
#include <stdio.h> int main(int argc, const char * argv[]) { struct People{ char *name; int age; };
C語言結構體的前向宣告,以及結構體巢狀const結構體成員的問題
如果你在宣告一個結構體A時,要使用一個未宣告的結構體B時,該怎麼辦?如下: #include <stdio.h> typedef struct demo{ struct stu test; const int test2; int te
SpringBoot 讀取yml檔案,以及獲取不到value的情況
如果出現value無法獲取的情況,請看一下pom專案是不是依賴不對, 一,spring元件重寫構造方法,在構造方法中引用@value為null 由於spring例項化順序為先執行構造方法,再注入成員變數,所以序為先執行構造方法,再注入成員變數,所以ing例項化順取值為
C語言根據結構體成員變數的地址,得到結構體的地址
/** * container_of - cast a member of a structure out to the containing structure * * @ptr: the pointer to the member. * @type: the type of the container s
python呼叫C++,傳遞結構體與結構體指標,以及巢狀結構體
#include<iostream>using namespace std;//該檔名稱:cpptest.cpp//終端下編譯指令://g++ -o cpptest.so -shared -fPIC cpptest.cppstruct sub_struct{
[python爬蟲]對html解析讀取編碼格式,統一轉碼為utf-8
from urllib.request import urlopen import chardet response=urlopen(url,timeout=3) html_byte=response
【學習筆記】HBuilder初學,簡單結構體
最近在研究HBuilder的用法,在看到官方網站的介紹和文件後感覺很懵,文件中並不是由淺入深的方式帶著新人通過一些常用示例來入門,一步一步循序漸進的讓使用者瞭解產品,使用產品,而是直接就列出了各種模組的方法、物件、許可權等等,讓我這個從技術出身而又轉型做產品的人
c和c++中,對結構體進行強制型別轉換
有這麼兩個結構體1. struct sockaddr { unsigned short sa_family;//地址型別 char sa_data[14];//協議地址 } 2. struct sockaddr_in {
C語言結構體內含有陣列,該結構體作為引數傳遞時需用指標,否則對陣列的修改不會被記錄
在C語言程式設計時,常常會定義結構體,而且結構體裡面常常會有陣列,比如如下所示: typedef struct {int data[MAX_HEAP_SIZE];unsigned int heap_size;}HeapType; 這是一個堆的資料結構,包含堆
C語言中,為什麼結構體後面經常定義一個空陣列
最近在寫C程式碼,經常看到Linux 的標頭檔案中有的結構體後面會定義一個空陣列,不知道其為何作用?經過高人指點終於明白其要點! struct inotify_event { __s32 wd; __u32 mask; __u32 cookie;