特定のパスが特定のディレクトリ内にあるかどうかを確認したい状況があります。私の最初の本能は、次のようなことをすることでした
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
ので、答えはイエスです。