Ce face os.IsPathSeparator
os.IsPathSeparator verifică un singur octet. Pe Linux și macOS doar '/' este separator. Pe Windows sunt acceptate atât '\', cât și '/'.
Constanta os.PathSeparator conține separatorul principal ('/' sau '\'). În practică, funcțiile din path/filepath rezolvă aproape toate cazurile; IsPathSeparator e utilă când parcurgi singur o cale caracter cu caracter.
Parametri
| Parametru | Descriere |
|---|---|
c |
Octetul de verificat, de exemplu '/'. |
Ce returnează
true dacă este separator, altfel false.
Exemple
Exemplul 1: Ce caractere sunt separatoare
Rezultatul este cel de pe Linux/macOS; pe Windows și \ ar fi true.
package main
import (
"fmt"
"os"
)
func main() {
for _, c := range []byte{'/', '\\', ':', 'a'} {
fmt.Printf("%q: %v\n", c, os.IsPathSeparator(c))
}
fmt.Printf("os.PathSeparator = %q\n", os.PathSeparator)
}
Rezultat
'/': true
'\\': false
':': false
'a': false
os.PathSeparator = '/'
Exemplul 2: Eliminarea separatoarelor de la final
package main
import (
"fmt"
"os"
)
func faraSeparatorFinal(cale string) string {
for len(cale) > 1 && os.IsPathSeparator(cale[len(cale)-1]) {
cale = cale[:len(cale)-1]
}
return cale
}
func main() {
fmt.Println(faraSeparatorFinal("/home/ana/poze///"))
fmt.Println(faraSeparatorFinal("documente/"))
fmt.Println(faraSeparatorFinal("/"))
}
Rezultat
/home/ana/poze
documente
/
Greșeli frecvente
- Compari direct cu
'/'într-un program care trebuie să meargă și pe Windows. Foloseșteos.IsPathSeparatorsau funcțiile dinfilepath.
Comenzi înrudite
filepath.Split: Împarte o cale în director (cu separatorul final) și numele fișierului.filepath.Clean: Simplifică o cale: elimină separatoarele duble, „.” și rezolvă „..” doar din text, fără acces la disc.filepath.FromSlash: FromSlash înlocuiește „/” cu separatorul sistemului; ToSlash face invers, înlocuind separatorul cu „/”.