zoukankan      html  css  js  c++  java
  • 开源包mqtt源码_DEBUG

    开源包mqtt源码_DEBUG

    巧妙的调试不注释变量

    官方代码包

    type (
    	// Logger interface allows implementations to provide to this package any
    	// object that implements the methods defined in it.
    	Logger interface {
    		Println(v ...interface{})
    		Printf(format string, v ...interface{})
    	}
    
    	// NOOPLogger implements the logger that does not perform any operation
    	// by default. This allows us to efficiently discard the unwanted messages.
    	NOOPLogger struct{}
    )
    
    func (NOOPLogger) Println(v ...interface{})               {}
    func (NOOPLogger) Printf(format string, v ...interface{}) {}
    
    // Internal levels of library output that are initialised to not print
    // anything but can be overridden by programmer
    var (
    	ERROR    Logger = NOOPLogger{}
    	CRITICAL Logger = NOOPLogger{}
    	WARN     Logger = NOOPLogger{}
    	DEBUG    Logger = NOOPLogger{}
    )
    

    分析

    看这个项目时候总是有这样的代码 DEBUG.Println(CLI, "client is connected/reconnected"), 但是进到源码一看啥都没打印

    在自己写项目时候,总是会调试一些东西,有些变量我们会用fmt打印出来,但是不想让变量打印,还要注释上面的var定义,很麻烦,就要用一个空接口来接受我们的需要注释的变量,这个设计很巧妙

    果断把他抄作业,带走到我的go-utils工具包里面去

  • 相关阅读:
    第二次会议
    第五次团队会议
    作业六:团队项目——编写项目的Spec
    DFD数据流程图
    第四次会议
    精通 VC++ 实效编程280例 03 控制栏
    1.窗体与界面设计工具栏设计
    HTML5开发 Local Storage 本地存储
    1.窗体与界面设计菜单应用实例
    精通 VC++ 实效编程280例 02 菜单和光标
  • 原文地址:https://www.cnblogs.com/maomaomaoge/p/15155837.html
Copyright © 2011-2022 走看看