1)解释什么是GO?

GO是一种开源编程语言,可以轻松构建简单、可靠和高效的软件。程序是从包中构建的,其属性允许有效地管理依赖关系。

2)GO中的语法是什么?

GO中的语法遵循Extended Backus-Naur Form(EBNF)

Production = production_name “=” [ Expression ]

Expression = Alternative { “l” Alternative }

Alternative = Term { Term }

Term = Production_name l token [ “…”token] l Group l Option l Repetition

Group = “ ( “ Expression”)”

Option = “ [ “ Expression “ ]”

Repetition = “ {“ Expression “}”

3)什么是字符串?

字符串代表一个从连接字符序列得到的字符串常量。

通常有两种形式,

原始字符串:原始字符串的值是由引号之间的不间断字符组成的字符串。

解释字符串:使用双引号“”表示,不包含换行符的双引号之间的文本形式的值。

4)解释在Go程序中的包?

每个GO程序由包组成。程序开始在main中运行,之后导入“fmt”和“math / rand”的包。

5)解释GO中的工作区?

工作区内GO代码必须保留。工作区是一个目录层次结构,其根目录有三个目录。

src包含组织成包的GO源文件

pkg包含包对象

bin包含可执行命令

6)如何使用GO语言中的自定义包?

如果你想让库 作为单独的get –table 项目,且在内部使用,那么可以这样编码:

在项目目录下放置目录与库文件

使用与项目组成工作区的根相对应的路径引用库。

例如:src/

myproject/

mylib/

mylib.go

. . .

main.go

这样,你就可以在在main.go中导入myprojec / mylib。

7)什么是GOPATH环境变量?

GOPATH环境变量决定工作区的位置。它是开发Go代码时必须设置的唯一环境变量。

8)怎么在GO中做测试?

它自带由go测试命令和测试包组成的轻量级测试框架。

要编写测试,必须创建一个名称以_testing结尾的文件,测试代码包含测试函数、测试辅助代码和示例函数;测试函数有以Test开头的功能测试函数和以Benchmark开头的性能测试函数两种,功能测试函数需要接收*testing.T类型的单一参数t。

9)什么是字符串类型?

字符串类型表示字符串值的集合,字符串值是字节序列。一旦创建的字符串是不可能改变的。

10)GO有哪些优点?

GO编译很快

Go支持语言级别的并发性

函数属于第一类对象

GO具备垃圾收集

Strings和Maps内置于该语言中

11)GO中内置的支持?

GO中可用的内置支持包括

容器:container/list , container/heap

Web服务器:net / http

加密:Crypto/md5 , crypto/sha1

压缩:compress / gzip

数据库:database / sql

12)GO中的 go routine是什么?如何停止 go routine?

goroutine是一种能与其他功能同时运行的功能

要停止goroutine,您将goroutine传递给一个信号通道。这个信号通道将接受一个推送来的值, goroutine会定期访问通道,一旦检测到信号它就会退出。

Quit : = make (chan bool)

go func ( ) {

for {

select {

case <- quit:

return

default

// do other stuff

}

}()

// Do stuff

// Quit goroutine

Quit <- true

13)如何在GO中编写多行字符串?

要在GO中编写多行字符串,可以使用原始字符串,其中字符串由单引号分隔。

‘ line 1

line 2

line 3 ’

14)如何访问传递给GO程序的命令行参数?

您可以使用os.Args变量访问命令行参数。例如,

Package main

import (

“fmt”

“OS”

)

func main () {

fmt.Println(len(os.Args), os.Args)

15)如何在GO中表示指针?

Var var_name * Var-type

var-type 为指针类型,var_name 为指针变量名,* 号用于指定变量是作为一个指针。

16)如何在不Printf的情况下格式化字符串?

要格式化字符串而不Printf,您必须使用命令

return fmt.Sprintf(“at%v,%s”,e.When,e.What)

17)GO中的数组与C有何不同?

GO 中的数组与C中的数组的不同:

数组是值,可以将一个数组的全部元素复制到另一个数组中

如果将数组传递给函数,它将复制数组,而不是指向它的指针

数组的大小是其类型的一部分。类型[10] int和[20] int是不同的

18)什么是GO接口?

在GO中,接口是一种指定对象行为的方法。通常使用“type”单词创建一个接口,后跟一个名称和接口关键字。一个接口被指定为两部分:

方法

类型

19)什么是类型断言?如何使用?

Java当中有instanceof这样的关键字判断类型,Go当中自然也有相应的方法来判断类型即Comma-ok断言。类型断言接受一个Interface,并从中检索指定的显式类型的值。

20)在GO语言中,如何在runtime检查变量类型?

switch可以用于判断变量类型,同时它还可以判断Interface的类型。

go面试题的更多相关文章

  1. .NET面试题系列[8] - 泛型

    “可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...

  2. 关于面试题 Array.indexof() 方法的实现及思考

    这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...

  3. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  4. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

  5. JAVA面试题

    在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...

  6. C++常考面试题汇总

    c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...

  7. .NET面试题系列[4] - C# 基础知识(2)

    2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...

  8. 我们公司的ASP.NET 笔试题,你觉得难度如何

    本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...

  9. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  10. 猫哥网络编程系列:详解 BAT 面试题

    从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...

随机推荐

  1. php的协程

    有关迭代生成器的内容在这篇博客中 协程 协程的支持是在迭代生成器的基础上, 增加了可以回送数据给生成器的功能(调用者发送数据给被调用的生成器函数). 这就把生成器到调用者的单向通信转变为两者之间的双向 ...

  2. javascript 元编程之 method_missing

    javascript 元编程之 method_missing 引言 要说元编程 ruby 中技巧太多了,今天来写的这个技术也来自于 ruby 中的灵感. method_missing 这个在 ruby ...

  3. MySQL之concat、concat_ws、group_concat

    concat(str1, str2, ...)  返回结果为连接一起的字符串. concat_ws(separator, str1, str2, ...) 同concat,但是可以指定连接符,sepa ...

  4. python基础:python循环、三元运算、字典、文件操作

    目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执 ...

  5. Python 等分切分数据及规则命名

    将一份一亿多条数据的csv文件等分为10份,代码如下所示: import pandas as pd data = pd.read_csv('C:\\Users\\PycharmProjects\\Sp ...

  6. java线程基础巩固---同步代码块以及同步方法之间的区别和关系

    在上一次中[http://www.cnblogs.com/webor2006/p/8040369.html]采用同步代码块的方式来实现对线程的同步,如下: 对于同步方法我想都知道,就是将同步关键字声明 ...

  7. Change :hover CSS properties with JavaScript

    I need to find a way to change CSS :hover properties using JavaScript. For example, suppose I have t ...

  8. java 发布订阅

    https://www.cnblogs.com/coderdxj/p/9627310.html java 观察这模式(发布订阅模式)   观察者设计模式定义了对象间的一种一对多的组合关系,以便一个对象 ...

  9. BZOJ2330 糖果[差分约束方案+spfa?/tarjan]

    以往对于差分约束理解不是太深,导致这题屡次被坑,在此记录一下细节的理解. 差分约束实际上就是利用了spfa的一个特性:只要有$dis_y>dis_x+w_{x,y}$就松弛,直到所有边关系都满足 ...

  10. 【模板】多标记 LCT

    代码如下 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int mod = 51061 ...