为了账号安全,请及时绑定邮箱和手机立即绑定
  • 切割字符串:Split(); 合并字符串:Join();
    查看全部
  • 我也想当老师
    查看全部
  • 今天学习文本处理
    查看全部
  • 如何在平行结构里处理树形结构的数据

    var t xml.Token
    var inItemGroup bool
    for t, err = decoder.Token(); err == nil; t, err = decoder.Token(){
        switch token := t(type){
        case xml.StarElement:
            name := token.Name.Local
            if inItemGroup{
                if name == "Compile"{
                // 第二步,处理标记事件
                    fmt.Println(name)
                }
            }else{
                if name == "ItemGroup"{
                // 第一步,找到就开启标记
                    inItemGroup = true
                }
            }
        }
        case xml.EndElement:
        // 结束标签 </EndElement> 标记
            if inItemGroup{
                if token.Name.Local == "ItemGroup"{
                // 第三步, 关闭标记
                    inItemGroup = false
                }
                
            }
    }
    查看全部
    0 采集 收起 来源:获取指定节点

    2021-07-13

  • 经验和建议

    • 字符串处理切勿造轮子

    • 字符串转化注意错误处理

    • flag.Parse 记得调

    • 新需求尽量用 json


    查看全部
    0 采集 收起 来源:总结

    2020-07-25

  • 实战!

    • 从 VS 工程文件获取文件列表

    • 模拟命令行拷贝文件


    查看全部
    0 采集 收起 来源:总结

    2020-07-25

  • 基础知识

    • 字符串基本操作,和其他类型的互相转化

    • XML 编码处理

    • 命令行解析


    查看全部
    0 采集 收起 来源:总结

    2020-07-25

  • package main
    
    import (
       "bufio"
       "flag"
       "fmt"
       "io"
       "os"
       "strings"
    )
    
    func fileExists(filename string) bool {
       _, err := os.Stat(filename)
       return err == nil || os.IsExist(err)
    }
    
    // 拷贝文件的行文
    func copyFileAction(src, dst string, showProgress, force bool) {
       if !force {
          if fileExists(dst) {
             fmt.Printf("%s exists, override? y/n\n", dst)
             reader := bufio.NewReader(os.Stdin)
             data, _, _ := reader.ReadLine()
    
             if strings.TrimSpace(string(data)) != "y" {
                return
             }
          }
       }
    
       copyFile(src, dst)
    
       if showProgress {
          fmt.Printf("'%s' -> '%s'\n", src, dst)
       }
    }
    
    func copyFile(src string, dst string) (w int64, err error) {
       srcFile, err := os.Open(src)
       if err != nil {
          fmt.Println(err.Error())
          return
       }
       defer srcFile.Close()
    
       dstFile, err := os.Create(dst)
       if err != nil {
          fmt.Println(err.Error())
          return
       }
       defer dstFile.Close()
    
       return io.Copy(dstFile, srcFile)
    }
    
    func main() {
       var showProgress, force bool
       
       flag.BoolVar(&force, "f", false, "force copy when existing")
       flag.BoolVar(&showProgress, "v", false, "explain what is being done")
       
       flag.Parse()
       
       if flag.NArg() < 2 {
          flag.Usage()
          return
       }
    
       copyFileAction(flag.Arg(0), flag.Arg(1), showProgress, force)
    }


    查看全部
  • -f:强制执行

    -v:输出拷贝动作


    查看全部
    0 采集 收起 来源:案例说明

    2020-07-25

  • 命令行解析 GO

    查看全部
    0 采集 收起 来源:案例说明

    2020-07-25

  • 模拟 Linux 中的 CP 指令

    查看全部
    0 采集 收起 来源:案例说明

    2020-07-25

  • 模拟命令行拷贝

    查看全部
    0 采集 收起 来源:案例说明

    2020-07-25

  • package main
    
    import (
       "bytes"
       "encoding/xml"
       "fmt"
       "io/ioutil"
    )
    
    func main() {
       content, err := ioutil.ReadFile("vsproj.csproj")
       
       decoder := xml.NewDecoder(bytes.NewBuffer(content))
    
       var t xml.Token
       var inItemGroup bool
       for t, err = decoder.Token(); err == nil; t, err = decoder.Token() {
          switch token := t.(type) {
          case xml.StartElement:
             name := token.Name.Local
    
             if inItemGroup {
                if name == "Compile" {
                   fmt.Println(getAttributeValue(token.Attr, "Include"))
                }
             } else {
                if name == "ItemGroup" {
                   inItemGroup = true
                }
             }
          case xml.EndElement:
          }
       }
    }
    
    func getAttributeValue(attr []xml.Attr, name string) string {
       for _, a := range attr{
          if a.Name.Local == name {
             return a.Value
          }
       }
    
       return ""
    }


    查看全部
  • package main
    
    import (
       "flag"
       "fmt"
    )
    
    func style()  {
       // 格式化定义
       methodPtr := flag.String("method", "default", "method of sample")
       valuePtr := flag.Int("value", -1, "value of sample")
    
       // 解析
       flag.Parse()
    
       fmt.Println(*methodPtr, *valuePtr)
    }
    
    func style2()  {
       var method string
       var value int
    
       flag.StringVar(&method, "method", "default", "method of sample")
       flag.IntVar(&value, "value", -1, "value of sample")
    
       flag.Parse()
    
       fmt.Println(method, value)
    }
    
    func main() {
       style2()
    }


    查看全部
  • package main
    
    import (
       "fmt"
       "os"
    )
    
    func main() {
       fmt.Println(os.Args)
    }


    查看全部

举报

0/150
提交
取消
课程须知
本课程适合想使用Golang进行文本处理, 编写各类小工具的同学. 如果你对Golang语言还不是很熟悉, 请先学习Golang语言的基础课程
老师告诉你能学到什么?
1、文本字符串操作 2、 XML编码处理 3、命令行解析 4、从VS工程文件获取文件列表 5、模拟命令行拷贝文件

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!