特定のパスが特定のディレクトリ内にあるかどうかを確認したい状況があります。私の最初の本能は、次のようなことをすることでした
filepath.HasPrefix(filepath.Clean(path), dir)
しかし、この手順filepath.HasPrefixは、歴史的な理由からのみ存在するものとして文書化されています。を使用しても同じ効果が得られますstrings.HasPrefixか、それとも何か不足していますか?
特定のパスが特定のディレクトリ内にあるかどうかを確認したい状況があります。私の最初の本能は、次のようなことをすることでした
filepath.HasPrefix(filepath.Clean(path), dir)
しかし、この手順filepath.HasPrefixは、歴史的な理由からのみ存在するものとして文書化されています。を使用しても同じ効果が得られますstrings.HasPrefixか、それとも何か不足していますか?
あなたは何も見逃していません、ソースを見てください:
// HasPrefix exists for historical compatibility and should not be used.
func HasPrefix(p, prefix string) bool {
return strings.HasPrefix(p, prefix)
}
strings.HasPrefix(p, prefix)直接使用するだけです。
Go 1.4 ではメソッドfilepath.HasPrefix が実際に呼び出す strings.HasPrefixので、答えはイエスです。