问题描述
如何在 Go 模板中创建函数? 我正在尝试遍历传递给模板的目录树,但我不知道如何遍历子目录而不在模板中创建调用自身的函数。
这是我想做的一些伪代码:
function loop(directory){
for item in directory:
if item.type == FOLDER:
loop(item)
}
如果有什么不清楚的,我很乐意澄清。
解决方法
package main
import (
"fmt"
"io/ioutil"
"log"
)
func loop(folder string){
files,err := ioutil.ReadDir(folder)
if err != nil {
log.Fatal(err)
}
for _,f := range files {
if f.IsDir() {
loop(f.Name())
}
fmt.Println(f.Name())
}
}
func main() {
loop(".")
}