本文整理汇总了Golang中bytes.LastIndexByte函数的典型用法代码### 示例。如果您正苦于以下问题:Golang LastIndexByte函数的具体用法?Golang LastIndexByte怎么用?Golang LastIndexByte使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。
在下文中一共展示了LastIndexByte函数的20个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。
示例1: normalizePath
func normalizePath(dst, src []byte) []byte {
dst = dst[:0]
dst = addLeadingSlash(dst, src)
dst = decodeArgAppend(dst, src, false)
// remove duplicate slashes
b := dst
bSize := len(b)
for {
n := bytes.Index(b, strSlashSlash)
if n < 0 {
break
}
b = b[n:]
copy(b, b[1:])
b = b[:len(b)-1]
bSize--
}
dst = dst[:bSize]
// remove /./ parts
b = dst
for {
n := bytes.Index(b, strSlashDotSlash)
if n < 0 {
break
}
nn := n + len(strSlashDotSlash) - 1
copy(b[n:], b[nn:])
b = b[:len(b)-nn+n]
}
// remove /foo/../ parts
for {
n := bytes.Index(b, strSlashDotDotSlash)
if n < 0 {
break
}
nn := bytes.LastIndexByte(b[:n], '/')
if nn < 0 {
nn = 0
}
n += len(strSlashDotDotSlash) - 1
copy(b[nn:], b[n:])
b = b[:len(b)-n+nn]
}
// remove trailing /foo/..
n := bytes.LastIndex(b, strSlashDotDot)
if n >= 0 && n+len(strSlashDotDot) == len(b) {
nn := bytes.LastIndexByte(b[:n], '/')
if nn < 0 {
return strSlash
}
b = b[:nn+1]
}
return b
}
开发者ID:stellar,项目名称:bridge-server,代码行数:59,代码来源:uri.go
示例2: parseFolders
func parseFolders(data []byte) (Folders, error) {
var (
idx int
folders Folders
)
idx = bytes.IndexByte(data, '{')
if idx < 0 {
return nil, errors.New("invalid folders data")
}
data = data[idx:]
idx = bytes.LastIndexByte(data, '}')
if idx < 0 {
return nil, errors.New("invalid folders data")
}
data = data[:idx+1]
err := json.Unmarshal(data, &folders)
if err != nil {
return nil, err
}
return folders, nil
}
开发者ID:fd,项目名称:1pwd,代码行数:25,代码来源:folders.go
示例3: LineBufferComplete
func (c *Client) LineBufferComplete(autoComplete string, attach bool) {
defer c.mutex.Unlock()
c.mutex.Lock()
buf := c.telnetLine
if !attach {
// overwrite current label
spc := bytes.LastIndexByte(buf.lineBuf[:buf.linePos], ' ')
buf.lineSize = spc + 1
}
// append label
for _, b := range autoComplete {
if buf.lineSize >= len(buf.lineBuf) {
break // overflow
}
// copy byte
buf.lineBuf[buf.lineSize] = byte(b)
buf.lineSize++
}
buf.linePos = buf.lineSize
}
开发者ID:udhos,项目名称:nexthop,代码行数:26,代码来源:cli.go
示例4: parseBand
func parseBand(data []byte) (Band, error) {
var (
idx int
band Band
)
idx = bytes.IndexByte(data, '{')
if idx < 0 {
return nil, errors.New("invalid band data")
}
data = data[idx:]
idx = bytes.LastIndexByte(data, '}')
if idx < 0 {
return nil, errors.New("invalid band data")
}
data = data[:idx+1]
err := json.Unmarshal(data, &band)
if err != nil {
return nil, err
}
return band, nil
}
开发者ID:fd,项目名称:1pwd,代码行数:25,代码来源:band.go
示例5: parseProfile
func parseProfile(data []byte) (*Profile, error) {
var (
idx int
profile *Profile
)
idx = bytes.IndexByte(data, '{')
if idx < 0 {
return nil, errors.New("invalid profile data")
}
data = data[idx:]
idx = bytes.LastIndexByte(data, '}')
if idx < 0 {
return nil, errors.New("invalid profile data")
}
data = data[:idx+1]
err := json.Unmarshal(data, &profile)
if err != nil {
return nil, err
}
return profile, nil
}
开发者ID:fd,项目名称:1pwd,代码行数:25,代码来源:profile.go
最后编辑: kuteng 文档更新时间: 2021-08-23 19:14 作者:kuteng