本文整理汇总了Golang中io.Reader.ReadString方法的典型用法代码示例。如果您正苦于以下问题:Golang Reader.ReadString方法的具体用法?Golang Reader.ReadString怎么用?Golang Reader.ReadString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类io.Reader
的用法示例。
在下文中一共展示了Reader.ReadString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: readMap
func (s *decodStatus) readMap(r io.Reader) (err error) {
s.data = make(map[string]string)
s.env = make(map[string]map[string]string)
var l, v, lastKey = 0, "", ""
for r := bufio.NewReader(r); err == nil; l++ {
v, err = r.ReadString(byte('\n'))
if v == "" || v[0] == '#' || v[0] == '\n' {
continue
}
v = clean(v)
for ; v[len(v)-1] == '\\'; l++ {
x, err := r.ReadString(byte('\n'))
if err != nil && err != io.EOF {
return err
}
v = v[:len(v)-1] + "\n" + strings.Trim(clean(x), " \t")
}
if v[0] == '\t' {
s.data[lastKey] = s.data[lastKey] + " " + v[1:]
continue
}
i := strings.Index(v, "=")
if i < 1 {
i = strings.Index(v, ":")
if i < 1 {
return fmt.Errorf("bad row %v, %s", l, v)
}
}
lastKey = strings.Trim(strings.Replace(v[:i], "-", "", -1), " ")
var env = ""
if x := strings.Split(lastKey, "@"); len(x) > 1 {
lastKey = x[0]
env = x[1]
}
if env == "" {
s.data[lastKey] = strings.Trim(v[i+1:], " ")
} else {
if s.env[env] == nil {
s.env[env] = make(map[string]string)
}
s.env[env][lastKey] = strings.Trim(v[i+1:], " ")
}
}
if err != io.EOF {
return err
}
return nil
}