go基础语法50问,来看看你的go基础合格了吗?( 五 )


  • beego 可以通过注释路由、正则路由等多种方式完成 url 路由注入
  • 可以使用 bee new 工具生成空工程,然后使用 bee run 命令自动热编译
  • 29.说说go语言的goconvey框架
    • goconvey 是一个支持 golang 的单元测试框架
    • goconvey 能够自动监控文件修改并启动测试,并可以将测试结果实时输出到web界面
    • goconvey 提供了丰富的断言简化测试用例的编写
    30.GoStub的作用是什么
    • GoStub 可以对全局变量打桩
    • GoStub 可以对函数打桩
    • GoStub 不可以对类的成员方法打桩
    • GoStub 可以打动态桩,比如对一个函数打桩后,多次调用该函数会有不同的行为
    31.go语言编程的好处是什么
    • 编译和运行都很快 。
    • 在语言层级支持并行操作 。
    • 有垃圾处理器 。
    • 内置字符串和 maps 。
    • 函数是 go 语言的最基本编程单位 。
    32.说说go语言的select机制
    • select 机制用来处理异步 IO 问题
    • select 机制最大的一条限制就是每个 case 语句里必须是一个 IO 操作
    • golang 在语言级别支持 select 关键字
    33.解释一下go语言中的静态类型声明静态类型声明是告诉编译器不需要太多的关注这个变量的细节 。
    静态变量的声明,只是针对于编译的时候, 在连接程序的时候,编译器还要对这个变量进行实际的声明 。
    34.go的接口是什么
    • 在 go 语言中,interface 也就是接口,被用来指定一个对象 。接口具有下面的要素:
    • 一系列的方法
    • 具体应用中并用来表示某个数据类型
    • 在 go 中使用 interface 来实现多态
    35.Go语言里面的类型断言是怎么回事类型断言是用来从一个接口里面读取数值给一个具体的类型变量 。类型转换是指转换两个不相同的数据类型 。
    36.go语言中局部变量和全局变量的缺省值是什么全局变量的缺省值是与这个类型相关的零值 。
    37.go语言编程的好处是什么
    • 编译和运行都很快 。
    • 在语言层级支持并行操作 。
    • 有垃圾处理器 。
    • 内置字符串和 maps 。
    • 函数是 go 语言的最基本编程单位 。
    38.解释一下go语言中的静态类型声明静态类型声明是告诉编译器不需要太多的关注这个变量的细节 。静态变量的声明,只是针对于编译的时候, 在连接程序的时候,编译器还要对这个变量进行实际的声明 。
    39.模块化编程是怎么回事模块化编程是指把一个大的程序分解成几个小的程序 。这么做的目的是为了减少程序的复杂度,易于维护,并且达到最高的效率 。
    40.Golang的方法有什么特别之处函数的定义声明没有接收者 。
    方法的声明和函数类似,他们的区别是:方法在定义的时候,会在func和方法名之间增加一个参数,这个参数就是接收者,这样我们定义的这个方法就和接收者绑定在了一起,称之为这个接收者的方法 。
    Go语言里有两种类型的接收者:值接收者和指针接收者 。使用值类型接收者定义的方法,在调用的时候,使用的其实是值接收者的一个副本,所以对该值的任何操作,不会影响原来的类型变量 。——-相当于形式参数 。
    如果我们使用一个指针作为接收者,那么就会其作用了,因为指针接收者传递的是一个指向原值指针的副本,指针的副本,指向的还是原来类型的值,所以修改时,同时也会影响原来类型变量的值 。
    41.Golang可变参数函数方法的参数,可以是任意多个,这种我们称之为可以变参数,比如我们常用的fmt.Println()这类函数,可以接收一个可变的参数 。可以变参数,可以是任意多个 。我们自己也可以定义可以变参数,可变参数的定义,在类型前加上省略号…即可 。

    经验总结扩展阅读