如何将buf拆分为一个行代码中的两个切片?

时间:2016-08-04 10:11:22

标签: go

buf拆分为两个切片。

一个是

buf[:n]

其他是

buf[n:].

n可能大于len(buf)。 只需使用一行代码即可完成。

有恩典代码吗?

1 个答案:

答案 0 :(得分:0)

这不优雅,也不实用,但评估是在一条线上......

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)
    }
}