2017-02-15 2 views
0
full path: views/admin/users.html 
trim set (views): /admin/users.html 
trim set (views/): admin/users.html 

full path: views/index.html 
trim set (views): /index.html 
trim set (views/): ndex.html 

Heres мой код:strings.Trim удаляет букву "я" (golang)

err := filepath.Walk("./views", func(path string, info os.FileInfo, err error) error { 
     if strings.Contains(path, ".html") { 
      bytes, err := ioutil.ReadFile(path) 
      if err != nil { 
       panic(err) 
      } 
      fmt.Println("full path:", path) 
      fmt.Println("trim set (views):", strings.Trim(path, "views")) 
      fmt.Println("trim set (views/):", strings.Trim(path, "views/")) 
     } 
    } 

ли я сошел с ума? Связана ли с этим косая черта? Пожалуйста, объясните, что происходит, если вы знаете.

+3

"Обрезка возвращает кусок строки s со всеми ведущими и задними точками Unicode кодов, содержащихся в cutset удалены." – sberry

+2

Возможно, вы хотите 'TrimPrefix' – sberry

+0

Спасибо! Очевидно, мне нужно немного поспать. –

ответ

6

Второй параметр, равный strings.Trim(), является «срезанным», т. Е. Набором рун для удаления из строк, а «i» является одним из них.

Чтобы вернуть все, кроме последнего элемента пути, используйте path.Dir().

0

Также вы можете использовать strings.Replace:

fmt.Println("full path:", path) 
fmt.Println("trim set (views):", strings.Replace(path, "views", "", -1)) 
fmt.Println("trim set (views/):", strings.Replace(path, "views/", "", -1)) 

Результат:

full path: views/index.html 
trim set (views): /index.html 
trim set (views/): index.html 
Смежные вопросы