登录
首页 >  Golang >  Go问答

Go语言如何在闭包里使用全局变量?

来源:SegmentFault

时间:2023-02-16 15:23:26 102浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《Go语言如何在闭包里使用全局变量?》,主要介绍了闭包、go、编程,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

package main

import (
    "fmt"
    "os"
    "path/filepath"
)

var Files []string

func main() {
    /*
    wc, _ := os.Getwd()
    var directory = flag.String("dir", wc, "which dir you wanna scan")
    flag.Parse()
    */

    err := Scan("/usr/local/var/www/app")

    if err == nil {
        fmt.Println("files:")
        fmt.Sprintf("%v\n", Files)
    } else {
        fmt.Println("errors:")
        fmt.Fprintf(os.Stderr, "%v", err)
    }
}

func Scan(path string) error {
    err := filepath.Walk(path, func (path string, f os.FileInfo, err error) error {
        if f == nil {
            return err
        }

        if f.IsDir() {
            return nil
        }

        Files = append(Files, path)

        return nil
    })

    return err
}

上述代码并不能将path push到Files全局变量里面,我该怎么办?

正确答案

怎么不可以用了,你把

fmt.Sprintf("%v\n", Files)

改成

fmt.Println(Files)

看看

理论要掌握,实操不能落!以上关于《Go语言如何在闭包里使用全局变量?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>