在Go語(yǔ)言中,我們常常需要進(jìn)行配置文件的讀取和解析。而Toml和Json是常用的配置文件格式,在Go語(yǔ)言中都有對(duì)應(yīng)的解析庫(kù)。
Toml是一種易讀易寫(xiě)的配置文件格式,它支持多種類型(包括整型、浮點(diǎn)型、布爾型、字符串型、數(shù)組、哈希表等),并且支持注釋。在Go語(yǔ)言中,我們可以使用github.com/BurntSushi/toml這個(gè)第三方庫(kù)進(jìn)行Toml文件的讀取和解析。下面是一個(gè)讀取Toml文件的示例:
import ( "fmt" "github.com/BurntSushi/toml" ) type Config struct { Port int Host string } func main() { var config Config _, err := toml.DecodeFile("config.toml", &config) if err != nil { panic(err) } fmt.Println(config.Port, config.Host) }
Json是一種輕量級(jí)的數(shù)據(jù)交換格式,它也支持多種類型(包括整型、浮點(diǎn)型、布爾型、字符串型、數(shù)組、哈希表等),并且比Toml更加常用。在Go語(yǔ)言中,我們可以使用內(nèi)置的encoding/json包進(jìn)行Json文件的讀取和解析。下面是一個(gè)讀取Json文件的示例:
import ( "fmt" "encoding/json" ) type Config struct { Port int `json:"port"` Host string `json:"host"` } func main() { var config Config file, _ := os.Open("config.json") defer file.Close() decoder := json.NewDecoder(file) err := decoder.Decode(&config) if err != nil { panic(err) } fmt.Println(config.Port, config.Host) }
總之,無(wú)論是Toml還是Json,它們都是非常常用的配置文件格式。在Go語(yǔ)言中,通過(guò)第三方庫(kù)或內(nèi)置包的支持,我們能夠方便地讀取和解析這些配置文件。