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

I am currently using strings.TrimLeft(s string, cutset string) on a path and want to pass os.PathSeparator as the second argument.

os.PathSeparator is defined in the os package as follows:

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

When I do pass it, I get the following error:

cannot use os.PathSeparator (type rune) as type string in argument to strings.TrimLeft

Any idea why os.PathSeparator isn't a string?

Because the separator actually is only a single character. If you want to use it as a string, why not simply cast it to string?

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

will return "absolute/path"

Path separators are single characters. If a given constant fits in a type, there's little reason to use a broader type.

You can still trim using os.PathSeparator, you just need to make a string out of it first.

For instance:

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