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