Go: Memisahkan path ke slice
Cara paling sederhana menggunakan strings.Split().
Sebagai contoh:
path := "foo/to/bar"
parts := strings.Split(path, "/")
fmt.Println(parts)
// Hasilnya: [foo to bar]
Cuma masalah ketika ada / di awal atau akhir. Itu cara tersebut akan menghasilkan ["", "foo", "to", "bar", ""], menghasilkan string kosong di awal ataupun akhir.
Maka solusinya bikin helper sederhana:
func SplitPath(p string) []string {
return strings.FieldsFunc(p, func(r rune) bool {
return r == '/'
})
}
Atau jika males buat Helper tinggal filter aja:
parts := strings.Split(path, "/")
// Filter empty
result := parts[:0]
for _, p := range parts {
if p != "" {
result = append(result, p)
}
}
Catatan Penting
Jika path seperti di windows (backslash), kita perlu
filepath.ToSlash() dulu.