本文整理汇总了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