您好,登錄后才能下訂單哦!
今天小編給大家分享一下golang面試題有哪些的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
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
當變量(或者對象)在方法中分配后,其指針被返回或者被全局引用(這樣就會被其他過程或者線程所引用),這種現象稱作指針(或者引用)的逃逸(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
包級別的變量按照聲明順序初始化, 在依賴解析完畢的情況下 ,根據依賴的順序進行。
包的初始按照導入的順序進行。
作用域:編譯屬性
生命周期 :運行期屬性。
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
考察 := 對外圍重名賦值的覆蓋問題。
第一個字節? 第一個字符?
答案:第一個字符( 一個字符根據不同編碼可能對應多個字節)
s := "12345"
s[0] = ‘0’ // 編譯錯誤!!!
slice 不可以做slice 的key, slice 沒有 “ == ” 操作
A 組合 B 繼承
答:A
go 的函數調用棧可變長,最多可達 1GB 左右
以上就是“golang面試題有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。