go语言常用api使用

初衷

初学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))
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值