osPathSeparator是rune类型,但想用作字符串

时间:2018-02-08 10:39:17

标签: go

我目前正在路径上使用strings.TrimLeft(s string, cutset string),并希望将os.PathSeparator作为第二个参数传递。

os.PathSeparatoros包中定义如下:

const (
    PathSeparator     = '\\' // OS-specific path separator
    PathListSeparator = ';'  // OS-specific path list separator
)

当我通过它时,我收到以下错误:

  

不能将os.PathSeparator(类型符文)用作strings.TrimLeft参数中的类型字符串

知道为什么os.PathSeparator不是字符串?

2 个答案:

答案 0 :(得分:3)

因为分隔符实际上只是一个字符。如果你想将它用作字符串,为什么不简单地将它转换为字符串?

strings.TrimLeft("/absolute/path", string(os.PathSeparator))

将返回"absolute/path"

答案 1 :(得分:1)

路径分隔符是单个字符。如果给定常量适合某种类型,则没有理由使用更广泛的类型。

你仍然可以使用os.PathSeparator进行修剪,你只需要首先从中创建一个字符串。

例如:

fmt.Println(strings.TrimLeft("/foo/bar/baz", string(os.PathSeparator)))
// Outputs: foo/bar/baz