欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:Golang基礎(chǔ)問題

柚子快報激活碼778899分享:Golang基礎(chǔ)問題

http://yzkb.51969.com/

Go基礎(chǔ)

文章目錄

Go基礎(chǔ)● Go有那些關(guān)鍵字?● Go方法與函數(shù)的區(qū)別?● Go函數(shù)返回局部變量的指針是否安全?● Go函數(shù)參數(shù)傳遞是值傳遞還是引用傳遞?● defer關(guān)鍵字的實現(xiàn)原理?● 內(nèi)置函數(shù)make和new的區(qū)別?● for range 的時候它的地址會發(fā)生變化嗎?● 簡單說一下defer的底層實現(xiàn)原理?defer recover的問題?● uint類型溢出?● 介紹rune類型● golang中解析tag是怎么實現(xiàn)的?反射原理是什么?● 調(diào)用函數(shù)傳入結(jié)構(gòu)體時,應(yīng)該傳值還是指針?● Slice遇到過什么坑?● 兩個切片要如何比較?● Go閉包是什么?● 深拷貝和淺拷貝?● init函數(shù)的執(zhí)行時機(jī)?● Go 語言中的數(shù)組?

歡迎大家觀看,如果遇到不合適的答案可以打在評論區(qū),我們一起探討。

● Go有那些關(guān)鍵字?

package、import、func、return、defer、var、const、interface、struct、chan、map、type、break、case、continue、for、fallthrough、else、if、switch、goto、default、range、go、select。

● Go方法與函數(shù)的區(qū)別?

函數(shù)是指不屬于任何結(jié)構(gòu)體的方法。但方法是屬于某個結(jié)構(gòu)體的。

● Go函數(shù)返回局部變量的指針是否安全?

是安全的。 Go編譯器將會對每個局部變量進(jìn)行逃逸分析。如果發(fā)現(xiàn)有局部變量的作用域超出該函數(shù),則不會將內(nèi)存分配在棧上,而是在堆上,因為他們不在棧區(qū),即使釋放函數(shù),其內(nèi)容也不會受影響。

● Go函數(shù)參數(shù)傳遞是值傳遞還是引用傳遞?

值傳遞。 Go中都是值傳遞,沒有引用傳遞。 如果參數(shù)是引用類型,可以修改原內(nèi)容數(shù)據(jù),否則不可以。

● defer關(guān)鍵字的實現(xiàn)原理?

defer可以推遲當(dāng)前函數(shù)返回前才實際執(zhí)行。 defer和recover結(jié)合,形成了Go語言風(fēng)格的異常與捕獲機(jī)制。

● 內(nèi)置函數(shù)make和new的區(qū)別?

1、作用變量類型不同,new可以對任何類型使用,make只能對切片、字典、通道使用。 2、返回類型不一樣,new返回指針,make返回變量本身。 3、new分配的空間被清零,make分配的會初始化。

● for range 的時候它的地址會發(fā)生變化嗎?

不會。在for range循環(huán)中,循環(huán)變量的地址在每次迭代時是復(fù)用的,直接傳遞循環(huán)變量的地址可能導(dǎo)致所有協(xié)程共享同一個地址,出現(xiàn)數(shù)據(jù)競爭和不期望的行為。

● 簡單說一下defer的底層實現(xiàn)原理?defer recover的問題?

先進(jìn)后出,類似于棧。defer延遲函數(shù),釋放資源,收尾工作;如釋放鎖,關(guān)閉文件,關(guān)閉鏈接;捕獲panic; 每個 defer 語句都對應(yīng)一個_defer 實例,多個實例使用指針連接起來形成一個單鏈表,保存在 gotoutine 數(shù)據(jù)結(jié)構(gòu)中,每次插入_defer 實例,均插入到鏈表的頭部,函數(shù)結(jié)束再一次從頭部取出,從而形成后進(jìn)先出的效果。 recover結(jié)合defer可以捕獲異常,從而防止程序崩潰。recover只有在defer函數(shù)中有效。

● uint類型溢出?

無符號整型。2^32-1,如果超出了所能表示的范圍,就會發(fā)生溢出。溢出不會引發(fā)錯誤或panic,而是導(dǎo)致結(jié)果按照模運(yùn)算。

● 介紹rune類型

相當(dāng)int32。 golang中的字符串底層實現(xiàn)是通過byte數(shù)組的,中文字符在unicode下占2個字節(jié),在utf-8編碼下占3個字節(jié),而golang默認(rèn)編碼正好是utf-8。byte 等同于int8,常用來處理ascii字符rune 等同于int32,常用來處理unicode或utf-8字符

● golang中解析tag是怎么實現(xiàn)的?反射原理是什么?

Go 中解析的 tag 是通過反射實現(xiàn)的,反射是指計算機(jī)程序在運(yùn)行時可以訪問、檢測和修改它本身狀態(tài)或行為的一種能力或動態(tài)知道給定數(shù)據(jù)對象的類型和結(jié)構(gòu),并有機(jī)會修改它。反射將接口變量轉(zhuǎn)換成反射對象 Type 和 Value;反射可以通過反射對象 Value 還原成原先的接口變量;反射可以用來修改一個變量的值,前提是這個值可以被修改;tag是啥:結(jié)構(gòu)體支持標(biāo)記,name string json:name-field 就是 json:name-field 這部分

● 調(diào)用函數(shù)傳入結(jié)構(gòu)體時,應(yīng)該傳值還是指針?

傳值時,函數(shù)會獲得給結(jié)構(gòu)體的一個副本,對該副本修改不會影響原來的結(jié)構(gòu)體。 傳指針時,引用類型,對指針指向的結(jié)構(gòu)體進(jìn)行任何的修改都會修改原來的結(jié)構(gòu)體。

● Slice遇到過什么坑?

1、切片容量 切片容量自動增長,當(dāng)容量不足時,Go會分配一個新的底層數(shù)組,并將舊的數(shù)組的內(nèi)容復(fù)制到新的數(shù)組中。如果頻繁增加元素可能導(dǎo)致意外。 應(yīng)對策略:預(yù)先分配足夠的容量。 2、切片是對底層數(shù)組的引用,多個切片可以共享同一個底層數(shù)組。修改一個切片的元素可能會影響其他共享同一底層數(shù)組的切片。 如果需要獨(dú)立的副本,可以使用copy函數(shù)創(chuàng)建一個新的切片。 3、切片越界。 4、切片的零值是nil。

● 兩個切片要如何比較?

切片不能使用==進(jìn)行比較,要使用reflect.DeepEqual()進(jìn)行比較。

● Go閉包是什么?

閉包就是一個可以引用自身作用域之外的變量的函數(shù)。即使外部函數(shù)完成執(zhí)行并且作用域被破壞,依然可以訪問。

● 深拷貝和淺拷貝?

切片、字典、通道都是引用拷貝,也就是淺拷貝。其余的都是值拷貝,也就是深拷貝。 深拷貝拷貝的是數(shù)據(jù)本身,創(chuàng)造一個新的對象,并在內(nèi)存中開辟一個新的內(nèi)存地址,與原對象是完全獨(dú)立的,不共享內(nèi)存,修改新對象時不會影響原對象的值。釋放內(nèi)存時,也沒有任何關(guān)聯(lián)。 淺拷貝拷貝的是數(shù)據(jù)地址,只復(fù)制指向的對象的指針,新舊對象的內(nèi)存地址是一樣的,修改一個另一個也會變。釋放內(nèi)存時,同時釋放。

● init函數(shù)的執(zhí)行時機(jī)?

一個包下可以有多個 init 函數(shù),每個文件也可以有多個 init 函數(shù)。多個 init 函數(shù)按照它們的文件名順序逐個初始化。應(yīng)用初始化時初始化工作的順序是,從被導(dǎo)入的最深層包開始進(jìn)行初始化,層層遞出最后到 main 包。不管包被導(dǎo)入多少次,包內(nèi)的 init 函數(shù)只會執(zhí)行一次。應(yīng)用初始化時初始化工作的順序是,從被導(dǎo)入的最深層包開始進(jìn)行初始化,層層遞出最后到 main 包。但包級別變量的初始化先于包內(nèi) init 函數(shù)的執(zhí)行。

● Go 語言中的數(shù)組?

數(shù)組是存放元素的容器,Go 語言中數(shù)組的長度是數(shù)組類型的一部分,定義數(shù)組時必須指定存放元素的類型和容量

柚子快報激活碼778899分享:Golang基礎(chǔ)問題

http://yzkb.51969.com/

推薦文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19150034.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄