作家
登录

用Go语言编写一门工具的终极指南

作者: 来源: 2017-10-26 13:08:22 阅读 我要评论

"" { 
  •         return errors.New("-line, -offset or -struct cannot be used together. pick one"
  •     } 
  •  
  •     if (c.add == nil || len(c.add) == 0) && 
  •         (c.addOptions == nil || len(c.addOptions) == 0) && 
  •         !c.clear && 
  •         !c.clearOption && 
  •         (c.removeOptions == nil || len(c.removeOptions) == 0) && 
  •         (c.remove == nil || len(c.remove) == 0) { 
  •         return errors.New("one of " + 
  •             "[-add-tags, -add-options, -remove-tags, -remove-options, -clear-tags, -clear-options]" + 
  •             " should be defined"
  •     } 
  •  
  •     return nil 
  • 将验证部分代码放到一个单一的函数中,使得测试测试更简单。既然我们已经知道若何获取设备并进行验证,我们持续去解析文件:

    用Go说话编写一门对象的最终指南

    我们在一开端就评论辩论了若何解析一个文件。这里解析的是config构造体中的办法。实际上,所有的办法都是config构造体的一部分:

    1. func main() { 
    2.     cfg := config{} 
    3.  
    4.     node, err := cfg.parse() 
    5.     if err != nil { 
    6.         return err 
    7.     } 
    8.  
    9.     // continue find struct selection ... 
    10.  
    11. func (c *config) parse() (ast.Node, error) { 
    12.     c.fset = token.NewFileSet() 
    13.     var contents interface{} 
    14.     if c.modified != nil { 
    15.         archive, err := buildutil.Par搜刮引擎优化verlayArchive(c.modified) 
    16.         if err != nil { 
    17.             return nil, fmt.Errorf("failed to parse -modified archive: %v", err) 
    18.         } 
    19.         fc, ok := archive[c.file] 

        推荐阅读

        微信消息撤回为啥只有2分钟?恍然大悟

      前人有云,“一言既出,驷马难追”,可见对说出口的话,是多么看重。可是,人总有说错话的时刻啊!为懂得决“手滑”的懊末路,微信在5.3.1.16版本中上线了“微信撤回”的>>>详细阅读


      本文标题:用Go语言编写一门工具的终极指南

      地址:http://www.17bianji.com/lsqh/38247.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)