Go 模板函数

问题描述

如何在 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(".")
}