【发布时间】:2016-09-11 13:41:50
【问题描述】:
我在从 API 接收压缩响应的客户端上有此代码:
client := &http.Client{}
response, _ := client.Do(r)
// Check that the server actual sent compressed data
var reader io.ReadCloser
switch response.Header.Get("Content-Encoding") {
case "gzip":
reader, err := gzip.NewReader(response.Body)
if err != nil {
log.Fatal(err)
}
defer reader.Close()
default:
reader = response.Body
}
token, err := io.Copy(os.Stdout, reader)
if err != nil {
log.Fatal(err)
}
cadenita := strconv.FormatInt(token, 10)
fmt.Println(cadenita)
cadena := "code=b2cc1793-cb7a-ea8d-3c82-766557"
fmt.Println(cadena[5:])
但是,如果我直接在 cadenita 上使用 [5:],虽然它也是一个字符串,但我有这个错误。
我希望能够对转换为字符串的令牌(int64)进行切片和正则表达式。我该怎么做?
【问题讨论】:
-
运行时错误是由于使用了 [5:]。这意味着我想要从索引 5 到字符串末尾的字符。但是,既然您的令牌包含至少 6 位数字(例如 100 000),您怎么办?
-
您的字符串少于 5 个字符。在索引之前验证它
-
@Jean-NicolasMoal 是的,它至少有 6 位数字。我刚刚更新了我的帖子