Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang 计算目录中代码的行数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

程序名字

countline

os 包来获取运行参数

运行的时候要提供两个参数,一个是目录,一个是扩展名
如:
countline . go

没有运行参数的就退出程序

if len(os.Args) != 3 {
        fmt.Println("countline [Dir] [extention]")
        return
    }

计算文件有多少个 ‘\n’

func countFileLine(name String) (count int64,err error) {
    fmt.Println("count file:",Name)
    data,err := IoUtil.ReadFile(Name)
    if err != nil {
        return
    }
    count = 0
    for i := 0; i < len(data); i++ {
        if data[i] == '\n' {
            count++
        }
    }
    fmt.Println("line:",count)
    return
}

遍历目录

filepath.Walk(os.Args[1],func(path String,info os.FileInfo,err error) error {
        if getExt(path) == os.Args[2] {
            fmt.Println(path)
            n,e := countFileLine(path)
            if e == nil {
                fmt.Println("lines: ",n)
                sum = sum + n
            }
        }
        return nil
    })

filepath.Walk会第二个成员是一个函数,其中的path就是遍历得到的文件路径,经过判断它是一个文件,就直接读出来。

完整代码:

package main

import (
    "fmt"
    "io/IoUtil"
    "os"
    "path/filepath"
    "Strings"
)

var (
    sum int64
)

func main() {
    if len(os.Args) != 3 {
        fmt.Println("countline [Dir] [extention]")
        return
    }
    filepath.Walk(os.Args[1],n)
                sum = sum + n
            }
        }
        return nil
    })
    fmt.Println("@R_855_10586@l lines: ",sum)
}

//获取文件的扩展名,最后一个.后面的内容
func getExt(f String) (ext String) {
    // fmt.Println("ext:",f)
    index := Strings.LasTindex(f,".")
    data := []byte(f)
    for i := index + 1; i < len(data); i++ {
        ext = ext + String([]byte{data[i]})
    }
    return
}

func countFileLine(name String) (count int64,count)
    return
}

大佬总结

以上是大佬教程为你收集整理的Golang 计算目录中代码的行数全部内容,希望文章能够帮你解决Golang 计算目录中代码的行数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。