本文整理汇总了Golang中bytes.LastIndex函数的典型用法代码### 示例。如果您正苦于以下问题:Golang LastIndex函数的具体用法?Golang LastIndex怎么用?Golang LastIndex使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。

在下文中一共展示了LastIndex函数的20个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。

示例1: parseLine

func parseLine(line []byte) logKv {
    m := bytes.LastIndex(line, startKey)
    if m < 1 {
        return nil
    }
    n := bytes.LastIndex(line, stopKey)
    if n < m {
        return nil
    }
    kv := make(logKv)

    sub := line[m+1 : n]
    items := bytes.Split(sub, kvSpace)

    for _, item := range items {
        x := bytes.Index(item, eqSign)
        if x < 1 {
            continue
        }
        key := string(item[:x])
        val := string(item[x+1:])
        kv[key] = val
    }

    return kv
}

开发者ID:hidu,项目名称:tool,代码行数:26,代码来源:bdlog_kv.go

示例2: HandleRequest

// handle the socket request
func (this *Server) HandleRequest(conn net.Conn, d []byte) {
    // example: {"usr":"","pwd":"123"}>>Member.Login
    //  defer func(){
    //      if e := recover();e!= nil{
    //          Println(e)
    //          debug.PrintStack()
    //      }
    //  }()

    if len(d) < len(CmdOperateBytes)+len(cmdDot) {
        conn.Write(invalidBytes)
        return
    }

    i := bytes.LastIndex(d, CmdOperateBytes)
    di := bytes.LastIndex(d, cmdDot)

    if i != -1 && di != -1 {
        rd, err := this.handle(d[i+len(CmdOperateBytes):di],
            d[di+len(cmdDot):], d[:i])

        if err != nil {
            Println("[Server][ ERROR]: " + err.Error())
            conn.Write([]byte(err.Error()))
        } else {
            Println(fmt.Sprintf("[Server][Output]:%s", string(rd)))
            conn.Write(rd)
        }
    } else {
        conn.Write(invalidBytes)
    }
}

开发者ID:marknewmail,项目名称:gof,代码行数:33,代码来源:jsv.go

示例3: ExampleLastIndex

func ExampleLastIndex() {
    fmt.Println(bytes.Index([]byte("go gopher"), []byte("go")))
    fmt.Println(bytes.LastIndex([]byte("go gopher"), []byte("go")))
    fmt.Println(bytes.LastIndex([]byte("go gopher"), []byte("rodent")))
    // Output:
    // 0
    // 3
    // -1
}

开发者ID:achanda,项目名称:go,代码行数:9,代码来源:example_test.go

示例4: ParseOneReq

// Функция разбора входящих данных и формирования объектов HttpRequest
// Возвращаемый результат: сформированный запрос (при наличии), необработанные данные,
// успешность выполнения (если false - получен некорректный запрос)
func ParseOneReq(data []byte) (req *HttpRequest, unworked_data []byte, success bool) {
    unworked_data = data
    success = true

    endl := []byte(endline_str)                          // Конец строки
    req_identifier := []byte(http_version + endline_str) // Признак запроса (версия HTTP + символы конца строки)

    // Ищем заголовок
    p_req_id := bytes.Index(unworked_data, req_identifier)
    p_endl := -1
    if p_req_id >= 0 {
        p_endl = bytes.LastIndex(unworked_data[:p_req_id], endl)
    } else {
        p_endl = bytes.LastIndex(unworked_data, endl)
    }

    if p_endl >= 0 {
        // Обнаружен переход на следующую строку перед признаком запроса - косяк
        unworked_data = unworked_data[p_endl+len(endline_str):]
        success = false
        return
    } else if p_req_id >= 0 {
        // Найден признак запроса
        p_req_id += len(req_identifier)
        params := strings.Split(string(unworked_data[:p_req_id]), " ")
        unworked_data = unworked_data[p_req_id:]

        if len(params) != 3 {
            // Неверный заголовок
            success = false
            return
        } // if len(params) != 3

        req = &HttpRequest{Type: params[0], Host: params[1]}
    } else {
        // Не нашли ни признака запроса, ни перехода на следующую строку
        unworked_data = data
        return
    }

    // Формируем параметры и тело запроса
    var rr *req_resp
    rr, unworked_data, success = parse_one_req_resp(unworked_data)
    if rr != nil {
        req.req_resp = *rr
    } else {
        req = nil
        if success {
            unworked_data = data
        }
    }

    return
} // func ParseOneReq(data []byte) (req *HttpRequest, unworked_data []byte, success bool)

开发者ID:alekseyfadeev86,项目名称:Tutorial,代码行数:57,代码来源:HttpUtils.go

示例5: shortText

func shortText(t []byte) []byte {
    if t == nil {
        return nil
    }

    // Cut signature.
    i := bytes.LastIndex(t, sigDash)
    j := bytes.LastIndex(t, quote)
    if i > j && bytes.Count(t[i+1:], nl) <= 10 {
        t = t[:i+1]
    }

    // Cut trailing quoted text.
    for {
        rest, last := lastLine(t)
        trim := bytes.TrimSpace(last)
        if len(rest) < len(t) && (len(trim) == 0 || trim[0] == '>') {
            t = rest
            continue
        }
        break
    }

    // Cut 'On foo.*wrote:' line.
    rest, last := lastLine(t)
    if onwrote.Match(last) {
        t = rest
    }

    // Cut trailing blank lines.
    for {
        rest, last := lastLine(t)
        trim := bytes.TrimSpace(last)
        if len(rest) < len(t) && len(trim) == 0 {
            t = rest
            continue
        }
        break
    }

    // Cut signature again.
    i = bytes.LastIndex(t, sigDash)
    j = bytes.LastIndex(t, quote)
    if i > j && bytes.Count(t[i+1:], nl) <= 10 {
        t = t[:i+1]
    }

    return t
}

开发者ID:ReinhardHsu,项目名称:platform,代码行数:49,代码来源:mail.go

最后编辑: kuteng  文档更新时间: 2021-08-23 19:14   作者:kuteng