日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Golang精编100题

發(fā)布時(shí)間:2025/3/21 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Golang精编100题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

能力模型

級(jí)別模型
初級(jí)
primary
熟悉基本語(yǔ)法,能夠看懂代碼的意圖;
在他人指導(dǎo)下能夠完成用戶故事的開發(fā),編寫的代碼符合CleanCode規(guī)范;
中級(jí)
intermediate
能夠獨(dú)立完成用戶故事的開發(fā)和測(cè)試;
能夠嗅出代碼的壞味道,并知道如何重構(gòu)達(dá)成目標(biāo);
高級(jí)
senior
能夠開發(fā)出高質(zhì)量高性能的代碼;
能夠熟練使用高級(jí)特性,開發(fā)編程框架或測(cè)試框架;

選擇題

  • [primary]?下面屬于關(guān)鍵字的是()
    A. func
    B. def
    C. struct
    D. class

    參考答案:AC

  • [primary]?定義一個(gè)包內(nèi)全局字符串變量,下面語(yǔ)法正確的是 ()
    A. var str string
    B. str := ""
    C. str = ""
    D. var str = ""

    參考答案:AD

  • [primary]?通過指針變量 p 訪問其成員變量 name,下面語(yǔ)法正確的是()
    A. a.b
    B. (*a).b
    C. &a.b
    D. a->b

    參考答案:AB

  • [primary]?關(guān)于接口和類的說法,下面說法正確的是()
    A. 一個(gè)類只需要實(shí)現(xiàn)了接口要求的所有函數(shù),我們就說這個(gè)類實(shí)現(xiàn)了該接口
    B. 實(shí)現(xiàn)類的時(shí)候,只需要關(guān)心自己應(yīng)該提供哪些方法,不用再糾結(jié)接口需要拆得多細(xì)才合理
    C. 類實(shí)現(xiàn)接口時(shí),需要導(dǎo)入接口所在的包
    D. 接口由使用方按自身需求來定義,使用方無需關(guān)心是否有其他模塊定義過類似的接口

    參考答案:ABD

  • [primary]?關(guān)于字符串連接,下面語(yǔ)法正確的是()
    A. str := ‘a(chǎn)bc’ + ‘123’
    B. str := "abc" + "123"
    C. str := '123' + "abc"
    D. fmt.Sprintf("abc%d", 123)

    參考答案:BD

  • [primary]?關(guān)于協(xié)程,下面說法正確是()
    A. 協(xié)程和線程都可以實(shí)現(xiàn)程序的并發(fā)執(zhí)行
    B. 線程比協(xié)程更輕量級(jí)
    C. 協(xié)程不存在死鎖問題
    D. 通過channel來進(jìn)行協(xié)程間的通信

    參考答案:AD

  • [intermediate]?關(guān)于init函數(shù),下面說法正確的是()
    A. 一個(gè)包中,可以包含多個(gè)init函數(shù)
    B. 程序編譯時(shí),先執(zhí)行導(dǎo)入包的init函數(shù),再執(zhí)行本包內(nèi)的init函數(shù)
    C. main包中,不能有init函數(shù)
    D. init函數(shù)可以被其他函數(shù)調(diào)用CD

    參考答案:AB

  • [primary]?關(guān)于循環(huán)語(yǔ)句,下面說法正確的有()
    A. 循環(huán)語(yǔ)句既支持for關(guān)鍵字,也支持while和do-while
    B. 關(guān)鍵字for的基本使用方法與C/C++中差異比較大
    C. for循環(huán)支持continue和break來控制循環(huán),但是它提供了一個(gè)更高級(jí)的
    break,可以選擇中斷哪一個(gè)循環(huán)
    D. for循環(huán)不支持以逗號(hào)為間隔的多個(gè)賦值語(yǔ)句,必須使用平行賦值的方式來初始化多
    個(gè)變量

    參考答案:CD

  • [intermediate]?對(duì)于函數(shù)定義:

    func add(args ...int) int {sum := 0for _, arg := range args {sum += arg}return sum }

    下面對(duì)add函數(shù)調(diào)用正確的是()
    A. add(1, 2)
    B. add(1, 3, 7)
    C. add([]int{1, 2})
    D. add([]int{1, 3, 7}...)

    參考答案:ABD

  • [primary]?關(guān)于類型轉(zhuǎn)化,下面語(yǔ)法正確的是()
    A.

    type MyInt int var i int = 1 var j MyInt = i

    B.

    type MyInt int var i int = 1 var j MyInt = (MyInt)i

    C.

    type MyInt int var i int = 1 var j MyInt = MyInt(i)

    D.

    type MyInt int var i int = 1 var j MyInt = i.(MyInt)

    參考答案:C

  • [primary]?關(guān)于局部變量的初始化,下面正確的使用方式是()
    A. var i int = 10
    B. var i = 10
    C. i := 10
    D. i = 10

    參考答案:ABC

  • [primary]?關(guān)于const常量定義,下面正確的使用方式是()
    A.

    const Pi float64 = 3.14159265358979323846 const zero = 0.0

    B.

    const (size int64 = 1024eof = -1 )

    C.

    const (ERR_ELEM_EXIST error = errors.New("element already exists")ERR_ELEM_NT_EXIST error = errors.New("element not exists") )

    D.

    const u, v float32 = 0, 3 const a, b, c = 3, 4, "foo"

    參考答案:ABD

  • [primary]?關(guān)于布爾變量b的賦值,下面錯(cuò)誤的用法是()
    A. b = true
    B. b = 1
    C. b = bool(1)
    D. b = (1 == 2)

    參考答案:BC

  • [intermediate]?下面的程序的運(yùn)行結(jié)果是()

    func main() { if (true) {defer fmt.Printf("1")} else {defer fmt.Printf("2")}fmt.Printf("3") }

    A. 321
    B. 32
    C. 31
    D. 13

    參考答案:C

  • [primary]?關(guān)于switch語(yǔ)句,下面說法正確的有()
    A. 條件表達(dá)式必須為常量或者整數(shù)
    B. 單個(gè)case中,可以出現(xiàn)多個(gè)結(jié)果選項(xiàng)
    C. 需要用break來明確退出一個(gè)case
    D. 只有在case中明確添加fallthrough關(guān)鍵字,才會(huì)繼續(xù)執(zhí)行緊跟的下一個(gè)case

    參考答案:BD

  • [intermediate]?golang中沒有隱藏的this指針,這句話的含義是()
    A. 方法施加的對(duì)象顯式傳遞,沒有被隱藏起來
    B. golang是簡(jiǎn)化版的面向?qū)ο笳Z(yǔ)言
    C. golang的面向?qū)ο蟊磉_(dá)更直觀,對(duì)于面向過程只是換了一種語(yǔ)法形式來表達(dá)
    D. 方法施加的對(duì)象不需要非得是指針,也不用非得叫this

    參考答案:ACD

  • [intermediate]?golang中的引用類型包括()
    A. 數(shù)組切片
    B. map
    C. channel
    D. interface

    參考答案:ABCD

  • [intermediate]?golang中的指針運(yùn)算包括()
    A. 可以對(duì)指針進(jìn)行自增或自減運(yùn)算
    B. 可以通過“&”取指針的地址
    C. 可以通過“*”取指針指向的數(shù)據(jù)
    D. 可以對(duì)指針進(jìn)行下標(biāo)運(yùn)算

    參考答案:BC

  • [primary]?下面說法正確的是()
    A. 不允許左大括號(hào)單獨(dú)一行
    B. 不允許出現(xiàn)未使用的變量
    C. 不允許出現(xiàn)未使用的import
    D. 不允許在一個(gè)目錄下有兩個(gè)包

    參考答案:ABCD

  • [intermediate]?下面賦值正確的是()
    A. var x = nil
    B. var x interface{} = nil
    C. var x string = nil
    D. var x error = nil

    參考答案:BD

  • [intermediate]?關(guān)于整型切片的初始化,下面正確的是()
    A. s := make([]int)
    B. s := make([]int, 0)
    C. s := make([]int, 5, 10)
    D. s := []int{1, 2, 3, 4, 5}

    參考答案:BCD

  • [intermediate]?從切片中刪除一個(gè)元素,下面的算法實(shí)現(xiàn)正確的是()
    A.

    func (s *Slice)Remove(value interface{}) error{for i, v := range *s {if isEqual(value, v) {if i== len(*s) - 1 {*s = (*s)[:i]}else {*s = append((*s)[:i],(*s)[i + 2:]...)}return nil}}return ERR_ELEM_NT_EXIST }

    B.

    func (s *Slice)Remove(value interface{}) error{for i, v := range *s {if isEqual(value, v) {*s = append((*s)[:i],(*s)[i + 1:])return nil}}return ERR_ELEM_NT_EXIST }

    C.

    func (s *Slice)Remove(value interface{}) error{for i, v := range *s {if isEqual(value, v) {delete(*s, v)return nil}}return ERR_ELEM_NT_EXIST }

    D.

    func (s *Slice)Remove(value interface{}) error{for i, v := range *s {if isEqual(value, v) {*s = append((*s)[:i],(*s)[i + 1:]...)return nil}}return ERR_ELEM_NT_EXIST }

    參考答案:D

  • [primary]?對(duì)于局部變量整型切片x的賦值,下面定義正確的是()
    A.

    x := []int{1, 2, 3,4, 5, 6, }

    B.

    x := []int{1, 2, 3,4, 5, 6 }

    C.

    x := []int{1, 2, 3,4, 5, 6}

    D.

    x := []int{1, 2, 3, 4, 5, 6,}

    參考答案:ACD

  • [primary]?關(guān)于變量的自增和自減操作,下面語(yǔ)句正確的是()
    A.

    i := 1 i++

    B.

    i := 1 j = i++

    C.

    i := 1 ++i

    D.

    i := 1 i--

    參考答案:AD

  • [intermediate]?關(guān)于函數(shù)聲明,下面語(yǔ)法錯(cuò)誤的是()
    A. func f(a, b int) (value int, err error)
    B. func f(a int, b int) (value int, err error)
    C. func f(a, b int) (value int, error)
    D. func f(a int, b int) (int, int, error)

    參考答案:C

  • [intermediate]?如果Add函數(shù)的調(diào)用代碼為:

    func main() {var a Integer = 1var b Integer = 2var i interface{} = &asum := i.(*Integer).Add(b)fmt.Println(sum) }

    則Add函數(shù)定義正確的是()
    A.

    type Integer int func (a Integer) Add(b Integer) Integer {return a + b }

    B.

    type Integer int func (a Integer) Add(b *Integer) Integer {return a + *b }

    C.

    type Integer int func (a *Integer) Add(b Integer) Integer {return *a + b }

    D.

    type Integer int func (a *Integer) Add(b *Integer) Integer {return *a + *b }

    參考答案:AC

  • [intermediate]?如果Add函數(shù)的調(diào)用代碼為:

    func main() {var a Integer = 1var b Integer = 2var i interface{} = asum := i.(Integer).Add(b)fmt.Println(sum) }

    則Add函數(shù)定義正確的是()
    A.

    type Integer int func (a Integer) Add(b Integer) Integer {return a + b }

    B.

    type Integer int func (a Integer) Add(b *Integer) Integer {return a + *b }

    C.

    type Integer int func (a *Integer) Add(b Integer) Integer {return *a + b }

    D.

    type Integer int func (a *Integer) Add(b *Integer) Integer {return *a + *b }

    參考答案:A

  • [intermediate]?關(guān)于GetPodAction定義,下面賦值正確的是()

    type Fragment interface {Exec(s1Obj *object.S1Obj, transInfo *context.TransInfo) error } type GetPodAction struct { } func (g GetPodAction) Exec(s1Obj *object.S1Obj, transInfo *context.TransInfo) error {...return nil }

    A. var fragment Fragment = new(GetPodAction)
    B. var fragment Fragment = GetPodAction
    C. var fragment Fragment = &GetPodAction{}
    D. var fragment Fragment = GetPodAction{}

    參考答案:ACD

  • [intermediate]?關(guān)于GoMock,下面說法正確的是()
    A. GoMock可以對(duì)interface打樁
    B. GoMock可以對(duì)類的成員函數(shù)打樁
    C. GoMock可以對(duì)函數(shù)打樁
    D. GoMock打樁后的依賴注入可以通過GoStub完成

    參考答案:AD

  • [intermediate]?關(guān)于接口,下面說法正確的是()
    A. 只要兩個(gè)接口擁有相同的方法列表(次序不同不要緊),那么它們就是等價(jià)的,可以相互賦值
    B. 如果接口A的方法列表是接口B的方法列表的子集,那么接口B可以賦值給接口A
    C. 接口查詢是否成功,要在運(yùn)行期才能夠確定
    D. 接口賦值是否可行,要在運(yùn)行期才能夠確定

    參考答案:ABC

  • [primary]?關(guān)于channel,下面語(yǔ)法正確的是()
    A. var ch chan int
    B. ch := make(chan int)
    C. <- ch
    D. ch <-

    參考答案:ABC

  • [primary]?關(guān)于同步鎖,下面說法正確的是()
    A. 當(dāng)一個(gè)goroutine獲得了Mutex后,其他goroutine就只能乖乖的等待,除非該goroutine釋放這個(gè)Mutex
    B. RWMutex在讀鎖占用的情況下,會(huì)阻止寫,但不阻止讀
    C. RWMutex在寫鎖占用情況下,會(huì)阻止任何其他goroutine(無論讀和寫)進(jìn)來,整個(gè)鎖相當(dāng)于由該goroutine獨(dú)占
    D. Lock()操作需要保證有Unlock()或RUnlock()調(diào)用與之對(duì)應(yīng)

    參考答案:ABC

  • [intermediate]?golang中大多數(shù)數(shù)據(jù)類型都可以轉(zhuǎn)化為有效的JSON文本,下面幾種類型除外()
    A. 指針
    B. channel
    C. complex
    D. 函數(shù)

    參考答案:BCD

  • [intermediate]?關(guān)于go vendor,下面說法正確的是()
    A. 基本思路是將引用的外部包的源代碼放在當(dāng)前工程的vendor目錄下面
    B. 編譯go代碼會(huì)優(yōu)先從vendor目錄先尋找依賴包
    C. 可以指定引用某個(gè)特定版本的外部包
    D. 有了vendor目錄后,打包當(dāng)前的工程代碼到任意機(jī)器的$GOPATH/src下都可以通過編譯

    參考答案:ABD

  • [primary]?flag是bool型變量,下面if表達(dá)式符合編碼規(guī)范的是()
    A. if flag == 1
    B. if flag
    C. if flag == false
    D. if !flag

    參考答案:BD

  • [primary]?value是整型變量,下面if表達(dá)式符合編碼規(guī)范的是()
    A. if value == 0
    B. if value
    C. if value != 0
    D. if !value

    參考答案:AC

  • [intermediate]?關(guān)于函數(shù)返回值的錯(cuò)誤設(shè)計(jì),下面說法正確的是()
    A. 如果失敗原因只有一個(gè),則返回bool
    B. 如果沒有失敗原因,則不返回error或bool
    C. 如果重試幾次可以避免失敗,則不要立即返回error或bool
    D. 如果失敗原因超過一個(gè),則返回error

    參考答案:ABD

  • [intermediate]?關(guān)于異常設(shè)計(jì),下面說法正確的是()
    A. 在程序開發(fā)階段,堅(jiān)持速錯(cuò),讓程序異常崩潰
    B. 在程序部署后,應(yīng)恢復(fù)異常避免程序終止
    C. 一切皆錯(cuò)誤,不用進(jìn)行異常設(shè)計(jì)
    D. 對(duì)于不應(yīng)該出現(xiàn)的分支,使用異常處理

    參考答案:ABD

  • [intermediate]?關(guān)于slice或map操作,下面正確的是()
    A.

    var s []int s = append(s,1)

    B.

    var m map[string]int m["one"] = 1

    C.

    var s []int s = make([]int, 0) s = append(s,1)

    D.

    var m map[string]int m = make(map[string]int) m["one"] = 1

    參考答案:ACD

  • [intermediate]?關(guān)于channel的特性,下面說法正確的是()
    A. 給一個(gè) nil channel 發(fā)送數(shù)據(jù),造成永遠(yuǎn)阻塞
    B. 從一個(gè) nil channel 接收數(shù)據(jù),造成永遠(yuǎn)阻塞
    C. 給一個(gè)已經(jīng)關(guān)閉的 channel 發(fā)送數(shù)據(jù),引起 panic
    D. 從一個(gè)已經(jīng)關(guān)閉的 channel 接收數(shù)據(jù),立即返回一個(gè)零值

    參考答案:ABCD

  • [intermediate]?關(guān)于無緩沖和有沖突的channel,下面說法正確的是()
    A. 無緩沖的channel是默認(rèn)的緩沖為1的channel
    B. 無緩沖的channel和有緩沖的channel都是同步的
    C. 無緩沖的channel和有緩沖的channel都是非同步的
    D. 無緩沖的channel是同步的,而有緩沖的channel是非同步的

    參考答案:D

  • [intermediate]?關(guān)于異常的觸發(fā),下面說法正確的是()
    A. 空指針解析
    B. 下標(biāo)越界
    C. 除數(shù)為0
    D. 調(diào)用panic函數(shù)

    參考答案:ABCD

  • [intermediate]?關(guān)于cap函數(shù)的適用類型,下面說法正確的是()
    A. array
    B. slice
    C. map
    D. channel

    參考答案:BD

  • [intermediate]?關(guān)于beego框架,下面說法正確的是()
    A. beego是一個(gè)golang實(shí)現(xiàn)的輕量級(jí)HTTP框架
    B. beego可以通過注釋路由、正則路由等多種方式完成url路由注入
    C. 可以使用bee new工具生成空工程,然后使用bee run命令自動(dòng)熱編譯
    D. beego框架只提供了對(duì)url路由的處理, 而對(duì)于MVC架構(gòu)中的數(shù)據(jù)庫(kù)部分未提供框架支持

    參考答案:ABC

  • [intermediate]?關(guān)于goconvey,下面說法正確的是()
    A. goconvey是一個(gè)支持golang的單元測(cè)試框架
    B. goconvey能夠自動(dòng)監(jiān)控文件修改并啟動(dòng)測(cè)試,并可以將測(cè)試結(jié)果實(shí)時(shí)輸出到web界面
    C. goconvey提供了豐富的斷言簡(jiǎn)化測(cè)試用例的編寫
    D. goconvey無法與go test集成

    參考答案:ABC

  • [intermediate]?關(guān)于goconvey,下面說法正確的是()
    A. go vet是golang自帶工具go tool vet的封裝
    B. 當(dāng)執(zhí)行g(shù)o vet database時(shí),可以對(duì)database所在目錄下的所有子文件夾進(jìn)行遞歸檢測(cè)
    C. go vet可以使用絕對(duì)路徑、相對(duì)路徑或相對(duì)GOPATH的路徑指定待檢測(cè)的包
    D. go vet可以檢測(cè)出死代碼

    參考答案:AC

  • [intermediate]?關(guān)于map,下面說法正確的是()
    A. map反序列化時(shí)json.unmarshal的入?yún)⒈仨殲閙ap的地址
    B. 在函數(shù)調(diào)用中傳遞map,則子函數(shù)中對(duì)map元素的增加不會(huì)導(dǎo)致父函數(shù)中map的修改
    C. 在函數(shù)調(diào)用中傳遞map,則子函數(shù)中對(duì)map元素的修改不會(huì)導(dǎo)致父函數(shù)中map的修改
    D. 不能使用內(nèi)置函數(shù)delete刪除map的元素

    參考答案:AB

  • [primary]?關(guān)于GoStub,下面說法正確的是()
    A. GoStub可以對(duì)全局變量打樁
    B. GoStub可以對(duì)函數(shù)打樁
    C. GoStub可以對(duì)類的成員方法打樁
    D. GoStub可以打動(dòng)態(tài)樁,比如對(duì)一個(gè)函數(shù)打樁后,多次調(diào)用該函數(shù)會(huì)有不同的行為

    參考答案:ABD

  • [primary]?關(guān)于select機(jī)制,下面說法正確的是()
    A. select機(jī)制用來處理異步IO問題
    B. select機(jī)制最大的一條限制就是每個(gè)case語(yǔ)句里必須是一個(gè)IO操作
    C. golang在語(yǔ)言級(jí)別支持select關(guān)鍵字
    D. select關(guān)鍵字的用法與switch語(yǔ)句非常類似,后面要帶判斷條件

    參考答案:ABC

  • [primary]?關(guān)于內(nèi)存泄露,下面說法正確的是()
    A. golang有自動(dòng)垃圾回收,不存在內(nèi)存泄露
    B. golang中檢測(cè)內(nèi)存泄露主要依靠的是pprof包
    C. 內(nèi)存泄露可以在編譯階段發(fā)現(xiàn)
    D. 應(yīng)定期使用瀏覽器來查看系統(tǒng)的實(shí)時(shí)內(nèi)存信息,及時(shí)發(fā)現(xiàn)內(nèi)存泄露問題

    參考答案:BD

  • 填空題

  • [primary]?聲明一個(gè)整型變量i__________

    參考答案:var i int

  • [primary]?聲明一個(gè)含有10個(gè)元素的整型數(shù)組a__________

    參考答案:var a [10]int

  • [primary]?聲明一個(gè)整型數(shù)組切片s__________

    參考答案:var s []int

  • [primary]?聲明一個(gè)整型指針變量p__________

    參考答案:var p *int

  • [primary]?聲明一個(gè)key為字符串型value為整型的map變量m__________

    參考答案:var map[string]int

  • [primary]?聲明一個(gè)入?yún)⒑头祷刂稻鶠檎偷暮瘮?shù)變量f__________

    參考答案:var f func(a int) int

  • [primary]?假設(shè)源文件的命名為slice.go,則測(cè)試文件的命名為__________

    參考答案:slice_test.go

  • [primary]?假設(shè)源文件的命名為slice.go,則測(cè)試文件的命名為__________

    參考答案:slice_test.go

  • [primary]?go test要求測(cè)試函數(shù)的前綴必須命名為__________

    參考答案:Test

  • [intermediate]?下面的程序的運(yùn)行結(jié)果是__________

    for i := 0; i < 5; i++ {defer fmt.Printf("%d ", i) }

    參考答案:4 3 2 1 0

  • [intermediate]?下面的程序的運(yùn)行結(jié)果是__________

    func main() {x := 1{x := 2fmt.Print(x)}fmt.Println(x) }

    參考答案:21

  • [intermediate]?下面的程序的運(yùn)行結(jié)果是__________

    func main() {strs := []string{"one", "two", "three"}for _, s := range strs {go func() {fmt.Printf("%s ", s)}()}time.Sleep(3 * time.Second) }

    參考答案:three three three

  • [intermediate]?下面的程序的運(yùn)行結(jié)果是__________

    func main() { x := []string{"a", "b", "c"}for v := range x {fmt.Print(v)} }

    參考答案:012

  • [intermediate]?下面的程序的運(yùn)行結(jié)果是__________

    func main() { x := []string{"a", "b", "c"}for _, v := range x {fmt.Print(v)} }

    參考答案:abc

  • [primary]?下面的程序的運(yùn)行結(jié)果是__________

    func main() { i := 1j := 2i, j = j, ifmt.Printf("%d%d\n", i, j) }

    參考答案:21

  • [primary]?下面的程序的運(yùn)行結(jié)果是__________

    func incr(p *int) int {*p++ return *p } func main() { v := 1 incr(&v)fmt.Println(v) }

    參考答案:2

  • [primary]?啟動(dòng)一個(gè)goroutine的關(guān)鍵字是__________

    參考答案:go

  • [intermediate]?下面的程序的運(yùn)行結(jié)果是__________

    type Slice []int func NewSlice() Slice {return make(Slice, 0) } func (s* Slice) Add(elem int) *Slice {*s = append(*s, elem)fmt.Print(elem)return s } func main() { s := NewSlice()defer s.Add(1).Add(2)s.Add(3) }

    參考答案:132

  • 判斷題

  • [primary]?數(shù)組是一個(gè)值類型()

    參考答案:T

  • [primary]?使用map不需要引入任何庫(kù)()

    參考答案:T

  • [intermediate]?內(nèi)置函數(shù)delete可以刪除數(shù)組切片內(nèi)的元素()

    參考答案:F

  • [primary]?指針是基礎(chǔ)類型()

    參考答案:F

  • [primary]?interface{}是可以指向任意對(duì)象的Any類型()

    參考答案:T

  • [intermediate]?下面關(guān)于文件操作的代碼可能觸發(fā)異常()

    file, err := os.Open("test.go") defer file.Close() if err != nil {fmt.Println("open file failed:", err)return } ...

    參考答案:T

  • [primary]?Golang不支持自動(dòng)垃圾回收()

    參考答案:F

  • [primary]?Golang支持反射,反射最常見的使用場(chǎng)景是做對(duì)象的序列化()

    參考答案:T

  • [primary]?Golang可以復(fù)用C/C++的模塊,這個(gè)功能叫Cgo()

    參考答案:F

  • [primary]?下面代碼中兩個(gè)斜點(diǎn)之間的代碼,比如json:"x",作用是X字段在從結(jié)構(gòu)體實(shí)例編碼到JSON數(shù)據(jù)格式的時(shí)候,使用x作為名字,這可以看作是一種重命名的方式()

    type Position struct {X int `json:"x"`Y int `json:"y"`Z int `json:"z"` }

    參考答案:T

  • [primary]?通過成員變量或函數(shù)首字母的大小寫來決定其作用域()

    參考答案:T

  • [primary]?對(duì)于常量定義zero(const zero = 0.0),zero是浮點(diǎn)型常量()

    參考答案:F

  • [primary]?對(duì)變量x的取反操作是~x()

    參考答案:F

  • [primary]?下面的程序的運(yùn)行結(jié)果是xello()

    func main() {str := "hello"str[0] = 'x'fmt.Printfln(str) }

    參考答案:F

  • [primary]?golang支持goto語(yǔ)句()

    參考答案:T

  • [primary]?下面代碼中的指針p為野指針,因?yàn)榉祷氐臈?nèi)存在函數(shù)結(jié)束時(shí)會(huì)被釋放()

    type TimesMatcher struct {base int } func NewTimesMatcher(base int) *TimesMatcher{return &TimesMatcher{base:base} } func main() {p := NewTimesMatcher(3)... }

    參考答案:F

  • [primary]?匿名函數(shù)可以直接賦值給一個(gè)變量或者直接執(zhí)行()

    參考答案:T

  • [primary]?如果調(diào)用方調(diào)用了一個(gè)具有多返回值的方法,但是卻不想關(guān)心其中的某個(gè)返回值,可以簡(jiǎn)單地用一個(gè)下劃線“_”來跳過這個(gè)返回值,該下劃線對(duì)應(yīng)的變量叫匿名變量()

    參考答案:T

  • [primary]?在函數(shù)的多返回值中,如果有error或bool類型,則一般放在最后一個(gè)()

    參考答案:T

  • [primary]?錯(cuò)誤是業(yè)務(wù)過程的一部分,而異常不是()

    參考答案:T

  • [primary]?函數(shù)執(zhí)行時(shí),如果由于panic導(dǎo)致了異常,則延遲函數(shù)不會(huì)執(zhí)行()

    參考答案:F

  • [intermediate]?當(dāng)程序運(yùn)行時(shí),如果遇到引用空指針、下標(biāo)越界或顯式調(diào)用panic函數(shù)等情況,則先觸發(fā)panic函數(shù)的執(zhí)行,然后調(diào)用延遲函數(shù)。調(diào)用者繼續(xù)傳遞panic,因此該過程一直在調(diào)用棧中重復(fù)發(fā)生:函數(shù)停止執(zhí)行,調(diào)用延遲執(zhí)行函數(shù)。如果一路在延遲函數(shù)中沒有recover函數(shù)的調(diào)用,則會(huì)到達(dá)該攜程的起點(diǎn),該攜程結(jié)束,然后終止其他所有攜程,其他攜程的終止過程也是重復(fù)發(fā)生:函數(shù)停止執(zhí)行,調(diào)用延遲執(zhí)行函數(shù)()

    參考答案:F

  • [primary]?任何類型都可以被Any類型引用,Any類型就是空接口,即interface{}()

    參考答案:T

  • [intermediate]?可以給任意類型添加相應(yīng)的方法()

    參考答案:F

  • [primary]?golang雖然沒有顯式的提供繼承語(yǔ)法,但是通過匿名組合實(shí)現(xiàn)了繼承()

    參考答案:T

  • [primary]?使用for range迭代map時(shí)每次迭代的順序可能不一樣,因?yàn)閙ap的迭代是隨機(jī)的()

    參考答案:T

  • [primary]?switch后面可以不跟表達(dá)式()

    參考答案:T

  • [intermediate]?結(jié)構(gòu)體在序列化時(shí)非導(dǎo)出變量(以小寫字母開頭的變量名)不會(huì)被encode,因此在decode時(shí)這些非導(dǎo)出變量的值為其類型的零值()

    參考答案:T

  • [primary]?golang中沒有構(gòu)造函數(shù)的概念,對(duì)象的創(chuàng)建通常交由一個(gè)全局的創(chuàng)建函數(shù)來完成,以NewXXX來命名()

    參考答案:T

  • [intermediate]?當(dāng)函數(shù)deferDemo返回失敗時(shí),并不能destroy已create成功的資源()

    func deferDemo() error {err := createResource1()if err != nil {return ERR_CREATE_RESOURCE1_FAILED}defer func() {if err != nil {destroyResource1()}}()err = createResource2()if err != nil {return ERR_CREATE_RESOURCE2_FAILED}defer func() {if err != nil {destroyResource2()}}()err = createResource3()if err != nil {return ERR_CREATE_RESOURCE3_FAILED}return nil }

    參考答案:F

  • [intermediate]?channel本身必然是同時(shí)支持讀寫的,所以不存在單向channel()

    參考答案:F

  • [primary]?import后面的最后一個(gè)元素是包名()

    參考答案:F

  • 總結(jié)

    以上是生活随笔為你收集整理的Golang精编100题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩精品人妻无码一本 | 国产精品一区三区 | 麻豆理论片 | 韩国三级中文字幕hd浴缸戏 | 一级在线观看 | 超碰黑丝 | 国产精品一区二区三区久久久 | 国产精品一区二三区 | 日韩av无码一区二区三区不卡 | av先锋影音 | 6699av| 免费中文字幕视频 | 亚洲熟女乱综合一区二区 | 中文字幕第7页 | 欧美日韩综合一区二区三区 | 国产亚洲视频在线 | 欧美在线专区 | 亲子乱一区二区三区 | 久久99久久99精品免视看婷婷 | 久久中文网 | 丰满大乳少妇在线观看网站 | 中国av免费看 | 天码人妻一区二区三区在线看 | av中字在线 | 四虎影院黄色 | 肉色超薄丝袜脚交69xx | 午夜精品av | 依人久久 | 亚洲第一av | 波多野结衣在线免费视频 | 国产原创视频在线 | 少妇情理伦片丰满午夜在线观看 | 国产视频入口 | 日韩高清影视在线观看 | 永久免费黄色 | 91视频com| 午夜性视频 | 色综合色综合网色综合 | 色婷婷色综合 | 国产xxxx在线观看 | 国产av一区二区三区最新精品 | 亚洲高清毛片 | 日韩精品麻豆 | 亚洲一区二区三区欧美 | 在线va| 免费又黄又爽又猛大片午夜 | 久久免费电影 | 不卡av中文字幕 | 欧美日韩视频在线播放 | 手机在线一区 | 午夜精品99| 91在线视频国产 | 日韩精品少妇 | 一级特黄a大片免费 | 91亚洲一线产区二线产区 | 在线天堂资源 | 最色网站| 日韩高清中文字幕 | 91av视频网 | 日本熟伦人妇xxxx | 天天艹日日艹 | 日韩在线视频免费观看 | 男女操操操 | 亚洲女同在线 | 99在线小视频 | 亚洲天堂自拍 | 精品久久久久久久中文字幕 | 欧美成人免费观看视频 | 国产伦精品一区二区三区视频女 | 国产精品久久久久9999爆乳 | 日韩欧美猛交xxxxx无码 | 成人免费在线视频观看 | 秋霞一区 | 浴室里强摁做开腿呻吟男男 | 91精品人妻一区二区三区蜜桃2 | 日本韩国欧美一区二区三区 | 在线精品国产 | 久久综合福利 | av网站免费在线观看 | 成人在线视频免费观看 | 中国黄色片子 | 日日干天天爽 | 欧美做受xxxxxⅹ性视频 | 国产精品无码天天爽视频 | 欧美在线视频a | 国产在线精 | 久久精品亚洲一区二区 | 黄色777 | 亚洲红桃视频 | 国内精品小视频 | 欧美成人一二区 | 国产福利一区二区视频 | 国产高清在线一区 | 久久香蕉综合 | 国产成人精品影视 | 中文字字幕在线 | 日本少妇xxx | www.在线观看视频 | av鲁丝一区二区鲁丝 |