go语言常用api使用

golang语言常用api使用

  • 初衷
  • 常用api使用
    • 获取文件的父目录
    • 创建多层目录
    • 读取文件内容并存入切片
    • 使用gopkg.in/ini操作配置文件
    • 判断文件是否存在
    • 以空格分割字符串(一个空格或者多个空格)

初衷

初学go语言,项目开发中难免遇到简单的写法复杂化的问题,在同事的comments中成长。

常用api使用

获取文件的父目录

filepath.Dir(file)

创建多层目录

if err := os.MkdirAll(filepath.Dir(file), def.DirPerm); err != nil {
		return err
}

读取文件内容并存入切片

func loadHostsToSlice(hostsFile string) ([]string, error) {
	cont, err := ioutil.ReadFile(hostsFile)
	if err != nil {
		return []string{}, err
	}
	// Remove the last one '\n'.
	str := strings.TrimSpace(string(cont))
	return strings.Split(str, "\n"), nil
}

使用gopkg.in/ini操作配置文件

[version]
format = 1.0

[connect]
host      = 192.168.0.5
port      = 8443
user      = cadmin
sessionid = cadmin218
type confParser struct {
	reader *ini.File // config reader
}
// Load conf file.
func (c *confParser) load(vncConsolePath string) {
	conf, err := ini.Load(vncConsolePath)
	if err != nil {
		log.Errorf("Failed to load vnc file %s, because of %v", vncConsolePath, err)
	}
	c.reader = conf
}

// Set value for conf file.
func (c *confParser) setValue(file, section, key, value string) error {
	c.reader.Section(section).Key(key).SetValue(value)
	return c.reader.SaveTo(file)
}

parser := confParser{}
parser.load(dcvFile)
// section="connect"  key="host"
if err := parser.setValue(dcvFile, section, key, h); err != nil {
	return err
}

判断文件是否存在

	if _, err := os.Stat(vncConsolePath); err != nil {
		log.Errorf("不存在%v", err)
	}

以空格分割字符串(一个空格或者多个空格)

	s := "admins       cadmin secadmin aduadmin"
	fmt.Printf("%q\n", strings.Fields(s))

你可能感兴趣的:(golang)