GOlang面试题

Go是什么?

使用Go编程有什么好处?

Go支持类型继承吗?

Go支持运营商超载吗?

Go支持方法重载吗? 不支持

Go支持指针算术吗? 支持除+-运算的算术

Go支持通用编程吗? 不支持泛型

Go是一个区分大小写的语言吗?区分大小写

Go中变量的动态类型声明是什么?用var申明变量  var x interface{} // x 为零值 nil,静态类型为 interface{}   var v *T // v 为零值 nil, 静态类型为 *T    x = 42 // x 的值为 42,动态类型为int, 静态类型为interface{}  x = v // x 的值为 (*T)(nil), 动态类型为 *T, 静态类型为 *T

你能在Go中的单个声明中声明多种类型的变量吗? 能 可以将若干个需要声明的变量放置在一起,免得程序员需要重复 写var关键字

如何在Go中打印变量的类型?直接使用reflect的TypeOf方法就可以了 模块是:    “reflect”  fmt.Println(reflect.TypeOf(var))

什么是指针?指针就是一个存放地址的变量当指针指向某个变量这时这个指针里就存放了那个变量的地址同时可以利用指针直接取变量中的值用 只要在指针前加 * 就是取其真值了

break语句的目的是什么?break语句终止并跳出循环,继续执行后面的代码。

继续声明的目的是什么?赋值变量新值

goto语句的目的是什么?无条件转移语句,它通常与条件语句配合使用来改变程序流向,使得程序转去执行语句标号所标识的语句

解释’for’循环的语法。

第一种基础形式,在for中申明变量,这种变量仅仅作用与该循环。第二种基础形式,在for循环前申明变量,该变量作用于该函数内。该变量可以不写在for关键字后,但”;”还是必须要写上第三种基础形式,循环控制语句写在循环内,使用一个break关键字来结束循环。第四种基础形式,循环的三个标准值都不在for关键字后写明 第五种形式,仅有循环条件,即for关键字后面只有一个条件表达式。第六种形式,无线循环,即for关键字后什么都没有

解释在Go中创建函数的语法。func (variable_name variable_data_type) function_name() [return_type]{/* 函数体*/}

你能从函数中返回多个值吗?当然能返回

您可以将参数传递给方法的方式有多少?post,get ,文件流

将参数传递给函数的默认方式是什么?不支持默认参数 不支持命名实参 参数视作为函数的局部变量 必须按签名顺序传递指定类型和数量的实参相邻的同类型参数可以合并支持不定长变参,实质上是slice

Go中的函数作为值是什么意思?

什么是功能关闭?

Go中的方法是什么?定义的或内置的可调用函数

Go中局部变量的默认值是多少?

Go中全局变量的默认值是多少?

Go中指针变量的默认值是多少?

解释Printf()函数的用途。

什么是左值和左值?

实际和形式参数之间有什么区别?

变量声明和变量定义有什么区别?

解释模块化编程。

什么是令牌?

哪个关键字用于执行无条件分支?

什么是阵列?

Go中的零指针是什么?

指针上的指针是什么?

Go的结构是什么?

如何在Go中定义一个结构?

Go中的切片是什么?

如何在Go中定义切片?

如何获取切片中存在的元素数?

Go中slice的len()和cap()函数有什么区别?

如何获得切片的子切片?

Go的范围是什么?

Go中的地图是什么?

如何在Go中创建地图?

如何从Go中删除地图中的条目?

什么是Go中的类型转换?

Go中的接口是什么?

 

答案:

go就是golang,是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

Go语言的优缺点

好处

灵活 – 简洁,简单,易读。

并发 – 它允许多个进程同时有效地运行。

快速结果 – 编译时间非常快。

图书馆 – 它提供了丰富的标准库。

垃圾收集 – 这是go的一个关键特征,擅长对内存分配进行大量控制,并大大减少了垃圾收集器的延迟。

它验证接口和类型嵌入。

缺点:

它不支持泛型,即使有很多关于它的讨论。

使用这种编程语言分发的软件包非常有用,但Go在传统意义上并不是面向对象的。

缺少一些库,尤其是UI工具包。

一些流行的应用程序用Go语言开发

go语言提倡组合,不提倡继承,能支持接口继承;

 

指针,和C用法以及本质一样,但不支持指针的+-运算!

它不支持泛型