Golang面試題41道
大家好,這一期呢廷粒,我們來說一下golang的面試題戳葵。
第1題什么是golang?
go是一個開源的編程語言,由谷歌開發(fā)的泉懦。這門語言是設計用來做系統(tǒng)級的編程的稿黍。
第2題為什么要用golang?
簡單點說就是go是一個開源的編程語言,它很容易用來編寫簡單, 可靠崩哩,有效的軟件巡球。
第3題是誰開發(fā)了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環(huán)境變量是什么?
Gopath來指定工作空間的位置中燥。在做go語言編程的時候,這個變量設置是必須的塘偎。
第11題疗涉,go語言編程的好處是什么?
編譯和運行都很快吟秩。
在語言層級支持并行操作咱扣。
有垃圾處理器。
內(nèi)置字符串和maps涵防。
函數(shù)是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是可以跟其他函數(shù)并行運行的函數(shù)火窒。如果想停止一個goroutine,你可以通過一個signal channel傳值進去驮肉。
第14題熏矿,如何寫多行的字符串?
raw string literal
第15題, go語言里的break是干什么用的离钝?
Break是用來終止當前的for loop或者switch的票编。
第16題,continue的作用是什么卵渴?
Continue就是跳過當前的運行單元慧域。不會終止當前的loop.
第17題,goto是干什么的浪读?
Goto 是為了跳轉(zhuǎn)昔榴。
第18題辛藻,for loop如何使用?
For 有三種情況互订,一種是condition吱肌,一種是range, 最后一種是init, condition, increment。
第19題在go語言中如何創(chuàng)建一個函數(shù)仰禽?
使用func functionname ([Parameter list]) [Return types]
第20題, 解釋一下go語言中的靜態(tài)類型聲明氮墨。
靜態(tài)類型聲明是告訴編譯器不需要太多的關(guān)注這個變量的細節(jié)。靜態(tài)變量的聲明吐葵,只是針對于編譯的時候, 在連接程序的時候规揪,編譯器還要對這個變量進行實際的聲明。
第21題, 解釋一下go語言中的動態(tài)類型聲明折联。
動態(tài)類型聲明是指go語言根據(jù)賦值的類型對這個變量的類型進行設定粒褒。
第22題, 如何打印出一個變量的類型?
%T
第23題, 什么是指針?
指針是用來存儲變量地址的類型。
第24題, 指針是如何表示的?
使用星號加上數(shù)據(jù)類型诚镰。
第25題奕坟, := 短聲明是不是只能用在一個函數(shù)里面?
是。
第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也就是接口,被用來指定一個對象玛痊。接口具有下面的要素:
一系列的方法汰瘫。
具體應用中并用來表示某個數(shù)據(jù)類型。
在go中使用interface來實現(xiàn)多態(tài)擂煞。
第34題混弥, Go語言里面的類型斷言是怎么回事?
類型斷言是用來從一個接口里面讀取數(shù)值給一個具體的類型變量。
類型轉(zhuǎn)換是指轉(zhuǎn)換兩個不相同的數(shù)據(jù)類型颈娜。
第35題剑逃, Go語言里面的方法是怎么回事?
Go語言里面的方法浙宜,實際上就是某個函數(shù), 在這個函數(shù)中指定一個receiver,在調(diào)用這個函數(shù)的時候使用這個receiver用dot操作符蛹磺。
第36題, go語言中局部變量的缺省值是什么?
局部變量的缺省值是與這個類型相關(guān)的0值粟瞬。
第37題, 全局變量的缺省值是什么?
全局變量的缺省值是與這個類型相關(guān)的零值萤捆。
第38題裙品, 指針的缺省值是什么?
指針的缺省值為nil。
第39題, 如何在運行時檢查一個變量的類型?
switch type.
第40題, 在使用go routine時是否推薦使用全局變量?
不推薦俗或。
第41題, 模塊化編程是怎么回事?
模塊化編程是指把一個大的程序分解成幾個小的程序市怎。這么做的目的是為了減少程序的復雜度,易于維護辛慰,并且達到最高的效率区匠。
碼字不易,請不吝點贊帅腌,隨手關(guān)注驰弄,更多精彩,自動送達速客。