今天小編給大家分享一下golang面試題有哪些的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,先為夷陵等服務(wù)建站,夷陵等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為夷陵企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
new 初始化T類型的零值,返回指針
make 初始T 類型, 返回T類型
s := struct {}{}
d := [0]int{}
if unsafe.Pointer(&s) == unsafe.Pointer(&d) {
fmt.Println("same adress")
} else {
fmt.Println("not same adress")
}
result:same adress
當(dāng)變量(或者對(duì)象)在方法中分配后,其指針被返回或者被全局引用(這樣就會(huì)被其他過程或者線程所引用),這種現(xiàn)象稱作指針(或者引用)的逃逸(Escape)。
func assginParameter() (ret int){
i := 0
ret = 0
for i < 3 {
go func() {
time.Sleep(1)
fmt.Println("get value %v", ret)
}()
i++
}
return 1
}
func TestInterface2(t *testing.T) {
assginParameter()
time.Sleep(3)
}
隱式賦值返回值
0 0 0
0 0 1
0 1 1
1 1 1
var a = b + c
var b = f()
var c = 1
func f() int {
return 100
}
func TestInterface2(t *testing.T) {
fmt.Println(a , b , c )
}
101 100 1
包級(jí)別的變量按照聲明順序初始化, 在依賴解析完畢的情況下 ,根據(jù)依賴的順序進(jìn)行。
包的初始按照導(dǎo)入的順序進(jìn)行。
作用域:編譯屬性
生命周期 :運(yùn)行期屬性。
var a = 0
if true {
a,b := 1, 5
fmt.Print(a, b)
}
fmt.Print(a)
if true {
b := 0
a,b = 2, 5
fmt.Println(a, b)
}
fmt.Println(a)
0 1 5 0 2 5 2
考察 := 對(duì)外圍重名賦值的覆蓋問題。
第一個(gè)字節(jié)? 第一個(gè)字符?
答案:第一個(gè)字符( 一個(gè)字符根據(jù)不同編碼可能對(duì)應(yīng)多個(gè)字節(jié))
s := "12345"
s[0] = ‘0’ // 編譯錯(cuò)誤?。?!
slice 不可以做slice 的key, slice 沒有 “ == ” 操作
A 組合 B 繼承
答:A
go 的函數(shù)調(diào)用棧可變長,最多可達(dá) 1GB 左右
以上就是“golang面試題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。