Package str

import "cmd/go/internal/str"
Overview
Index

Overview ▾

Package str provides string manipulation utilities.

func FoldDup

func FoldDup(list []string) (string, string)

FoldDup reports a pair of strings from the list that are equal according to strings.EqualFold. It returns "", "" if there are no such strings.

func HasFilePathPrefix

func HasFilePathPrefix(s, prefix string) bool

HasFilePathPrefix reports whether the filesystem path s begins with the elements in prefix.

HasFilePathPrefix is case-sensitive (except for volume names) even if the filesystem is not, does not apply Unicode normalization even if the filesystem does, and assumes that all path separators are canonicalized to filepath.Separator (as returned by filepath.Clean).

func HasPathPrefix

func HasPathPrefix(s, prefix string) bool

HasPathPrefix reports whether the slash-separated path s begins with the elements in prefix.

func QuoteGlob

func QuoteGlob(s string) string

QuoteGlob returns s with all Glob metacharacters quoted. We don't try to handle backslash here, as that can appear in a file path on Windows.

func StringList

func StringList(args ...any) []string

StringList flattens its arguments into a single []string. Each argument in args must have type string or []string.

func ToFold

func ToFold(s string) string

ToFold returns a string with the property that

strings.EqualFold(s, t) iff ToFold(s) == ToFold(t)

This lets us test a large set of strings for fold-equivalent duplicates without making a quadratic number of calls to EqualFold. Note that strings.ToUpper and strings.ToLower do not have the desired property in some corner cases.

func TrimFilePathPrefix

func TrimFilePathPrefix(s, prefix string) string

TrimFilePathPrefix returns s without the leading path elements in prefix, such that joining the string to prefix produces s.

If s does not start with prefix (HasFilePathPrefix with the same arguments returns false), TrimFilePathPrefix returns s. If s equals prefix, TrimFilePathPrefix returns "".

func Uniq

func Uniq(ss *[]string)

Uniq removes consecutive duplicate strings from ss.

func WithFilePathSeparator

func WithFilePathSeparator(s string) string

WithFilePathSeparator returns s with a trailing path separator, or the empty string if s is empty.