-2
buf
を2つのスライスに分割します。1行のコードで2つのスライスに分割する方法は?
一つは、他の
buf[:n]
は多分
buf[n:].
n
len(buf)
よりも大きいです。 1行のコードを使用して終了します。
猶予コードはありますか?
buf
を2つのスライスに分割します。1行のコードで2つのスライスに分割する方法は?
一つは、他の
buf[:n]
は多分
buf[n:].
n
len(buf)
よりも大きいです。 1行のコードを使用して終了します。
猶予コードはありますか?
これはエレガントでも実用的ではなく、評価が1行にある...
package main
import (
"fmt"
)
func main() {
buf := "abcdefg"
n := 8
// fugly one-liner
a, b, err := func() (string, string, error) {if n > len(buf) {return "", "", fmt.Errorf("out of bounds")} else {return buf[:n], buf[n:], nil}}()
if err != nil {
fmt.Println(err.Error())
} else {
fmt.Print(a + ":" + b)
}
}
'、B:= BUF [:n]は、BUF [N:] ' – icza
大きいN場合len(buf)よりも。 .panic:ランタイムエラー:スライス境界が範囲外にある –
'n 'が' len(buf)'より大きい場合、あなたは何をしたいですか?そのため、あなたは 'buf [n:]'できません。 – icza