'Golang面試題41道'

"

Golang面試題41道


"

Golang面試題41道


Golang面試題41道


大家好,這一期呢,我們來說一下golang的面試題。

第1題什麼是golang?

go是一個開源的編程語言,由谷歌開發的。這門語言是設計用來做系統級的編程的。

第2題為什麼要用golang?

簡單點說就是go是一個開源的編程語言,它很容易用來編寫簡單, 可靠,有效的軟件。

第3題是誰開發了go語言?

Robert Griesemer, Rob Pike, Ken Thompson.

第4題,go編程中的packages是什麼?

Go語言的最小集合就是package,它的程序入口是main package。

第5題, Go語言是否支持generic編程?

不支持。

第6題, go語言是大小寫敏感的編程語言嗎?

是的。

第7題,go語言裡面字符串的語法是怎樣的?

go語言裡有兩種字符串語法。

一種是原始字符串語法raw string literals。使用back quotes來包含一系列的字符集。支持多行。

另一種是interpreted string literals。用雙引號括起來。不支持多行。

第8題, Go語言的work space是指什麼?

Work space用來包含go語言的代碼,有三個主要的文件目錄, src, pkg, bin。

第9題,go語言中布爾類型的缺省值是什麼?

false

第10題, Gopath環境變量是什麼?

Gopath來指定工作空間的位置。在做go語言編程的時候,這個變量設置是必須的。

第11題,go語言編程的好處是什麼?

編譯和運行都很快。

在語言層級支持並行操作。

有垃圾處理器。

內置字符串和maps。

函數是go語言的最基本編程單位。

第12題,go語言裡比較常用的功能模塊。

Container, container list, container heap.

Web server, net/http

Cryptography, Crypto/md5, crypto/sha1.

Compression, compress/gzip.

Database, database/sql.

第13題,goroutine是什麼?

一個goroutine是可以跟其他函數並行運行的函數。如果想停止一個goroutine,你可以通過一個signal channel傳值進去。

第14題,如何寫多行的字符串?

raw string literal

第15題, go語言裡的break是幹什麼用的?

Break是用來終止當前的for loop或者switch的。

第16題,continue的作用是什麼?

Continue就是跳過當前的運行單元。不會終止當前的loop.

第17題,goto是幹什麼的?

Goto 是為了跳轉。

第18題,for loop如何使用?

For 有三種情況,一種是condition,一種是range, 最後一種是init, condition, increment。

第19題在go語言中如何創建一個函數?

使用func functionname ([Parameter list]) [Return types]

第20題, 解釋一下go語言中的靜態類型聲明。

靜態類型聲明是告訴編譯器不需要太多的關注這個變量的細節。靜態變量的聲明,只是針對於編譯的時候, 在連接程序的時候,編譯器還要對這個變量進行實際的聲明。

第21題, 解釋一下go語言中的動態類型聲明。

動態類型聲明是指go語言根據賦值的類型對這個變量的類型進行設定。

第22題, 如何打印出一個變量的類型?

%T

第23題, 什麼是指針?

指針是用來存儲變量地址的類型。

第24題, 指針是如何表示的?

使用星號加上數據類型。

第25題, := 短聲明是不是隻能用在一個函數裡面?

是。

第26題, 如何不打印來格式化一個字符串?

fmt.Sprintf

第27題, go語言的語義是什麼類型?

Go 語言的語意遵循的是extended backus-naur form即延伸的巴克斯.諾爾形式.

第28題, go語言是否支持繼承?

不支持。

第29題,go語言是否支持操作符的重載?

不支持。

第30題,go語言是否支持方法重載?

不支持。

第31題,go語言是否支持指針運算?

不支持。

第32題,如下代碼的輸出是什麼?

package main

import "fmt"

const (

i=7

j

k

)

func main(){

fmt.Println(i,j,k)

}

答案是777.

第33題,go的接口是什麼?

在go語言中,interface也就是接口,被用來指定一個對象。接口具有下面的要素:

一系列的方法。

具體應用中並用來表示某個數據類型。

在go中使用interface來實現多態。

第34題, Go語言裡面的類型斷言是怎麼回事?

類型斷言是用來從一個接口裡面讀取數值給一個具體的類型變量。

類型轉換是指轉換兩個不相同的數據類型。

第35題, Go語言裡面的方法是怎麼回事?

Go語言裡面的方法,實際上就是某個函數, 在這個函數中指定一個receiver,在調用這個函數的時候使用這個receiver用dot操作符。

第36題, go語言中局部變量的缺省值是什麼?

局部變量的缺省值是與這個類型相關的0值。

第37題, 全局變量的缺省值是什麼?

全局變量的缺省值是與這個類型相關的零值。

第38題, 指針的缺省值是什麼?

指針的缺省值為nil。

第39題, 如何在運行時檢查一個變量的類型?

switch type.

第40題, 在使用go routine時是否推薦使用全局變量?

不推薦。

第41題, 模塊化編程是怎麼回事?

模塊化編程是指把一個大的程序分解成幾個小的程序。這麼做的目的是為了減少程序的複雜度,易於維護,並且達到最高的效率。

碼字不易,請不吝點贊,隨手關注,更多精彩,自動送達。

"

相關推薦

推薦中...