日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

聽說你Go語言學的不錯,來來來,我這兒有幾道小題

 

第1題

package main

import (  
    "fmt"
)

func hello() []string {  
    return nil
}

func main() {  
    h := hello
    if h == nil {
        fmt.Println("nil")
    } else {
        fmt.Println("not nil")
    }
}

選項

nil  
not nil  
compilation error

答案

not nil

在主函數中,把 hello 函數賦值給了變量 h。在條件判斷中,h != nil,所以會打印,not nil。

第2題

package main

import (  
    "fmt"
    "strconv"
)

func main() {  
    i := 2 
    s := "1000"
    if len(s) > 1 {
        i, _ := strconv.Atoi(s)
        i = i + 5
    }
    fmt.Println(i)
}

選項

2  
1005  
compilation error

答案

2

主要問題點集中在第 12 行, i, _ := strconv.Atoi(s) 創建了一個新變量i ,作用域限制在 if 語句內。 但是在第 15 行打印的時候,變量 i 則是全局變量的值。

第3題

package main

import (  
    "fmt"
)

func hello(num ...int) {  
    num[0] = 18
}

func main() {  
    i := []int{5, 6, 7}
    hello(i...)
    fmt.Println(i[0])
}

選項

18  
5  
Compilation error

答案

18

這一題考查的是可變參數,如果把 slice 傳遞給可變參數,其作用會施加到調用者。

第 4 題

package main

import (  
    "fmt"
)

func main() {  
    a := [2]int{5, 6}
    b := [2]int{5, 6}
    if a == b {
        fmt.Println("equal")
    } else {
        fmt.Println("not equal")
    }
}

選項

compilation error  
equal  
not equal

答案

equal

數組是Go中的值類型,可以進行比較。如果對應的元素相等,則兩個數組值相等。在我們的例子中,a和b是相等的,因此這個程序打印為相等。

第 5 題

package main

import "fmt"

type rect struct {  
    len, wid int
}

func (r rect) area() {  
    fmt.Println(r.len * r.wid)
}

func main() {  
    r := &rect{len: 5, wid: 6}
    r.area()
}

選項

compilation error  
30

答案

30

這個程序將正確編譯并打印30。

第 14 行,我們把 rect 的地址分配給了 r。你可能想知道,當我們在第 15 行沒有使用(*r).area()時,為什么這個程序還能工作。由于area()有一個值接收器,所以Go足夠智能,可以將 r.area() 解釋為 (*r).area(),因此這個程序可以工作:。

第 6 題

package main

import (  
    "fmt"
)

func main() {  
    a := [5]int{1, 2, 3, 4, 5}
    t := a[3:4:4]
    fmt.Println(t[0])
}

選項

3  
4  
compilation error

答案

4

表達式

a[low : high : max]

構造與簡單的片表達式 a[low: high] 相同類型、相同長度和元素的片。

另外,它通過將結果片設置為 max - low 來控制它的容量。因此,第 9 行中的切片 t 有一個元素4,容量是1。

第 7 題

package main

import (  
    "fmt"
)

type person struct {  
    name string
}

func main() {  
    var m map[person]int
    p := person{"mike"}
    fmt.Println(m[p])
}

選項

compilation error  
0  
1

答案

0

當我們嘗試打印在映射中不存在的元素時,將打印該元素的零值。在我們的例子中,m是 map[person]int 類型的映射。因為p在映射中不存在,int 的初始值 0 被打印出來。

第 8 題

package main

import (  
    "fmt"
)

func main() {  
    i := 65
    fmt.Println(string(i))
}

選項

A  
65  
compilation error

答案

A

字母 A 的 unicode值是 65。所以第 9 行,i 被強制格式化為string類型是,就打印出字母 A 了。

第 9 題

package main

import (  
    "fmt"
)

func main() {  
    a := 5
    b := 8.1
    fmt.Println(a + b)
}

選項

13.1  
13  
compilation error

答案

compilation error

這個錯誤很簡單,也很明顯。兩個變量數據類型不相同,直接運算,編譯不通過。

第 10 題

package main

import (  
    "fmt"
)

func main() {  
    var i interface{}
    if i == nil {
        fmt.Println("nil")
        return
    }
    fmt.Println("not nil")
}

選項

nil  
not nil  
compilation error

答案

nil

空接口的基礎值和具體類型都為nil。因此 i 為 nil。

第 11 題

package main

import (  
    "fmt"
)

func hello(i int) {  
    fmt.Println(i)
}
func main() {  
    i := 5
    defer hello(i)
    i = i + 10
}

選項

5  
15

答案

5

延遲函數的參數是在執行 defer 語句時求值,而不是在實際函數調用完成時求值。

因此,當遇到第 12 行中的 defer 語句時, i的值是5。這個程序會輸出5。

第 12 題

package main

import (  
    "fmt"
)

func main() {  
    fmt.Printf("%%")
}

選項

0.0  
compilation error  
%

答案

%

字符串格式化的知識。想打印 % 字面量,就需要用 % 進行轉移。

第 13 題

package main

import (  
    "fmt"
)

func main() {  
    s := make(map[string]int)
    delete(s, "h")
    fmt.Println(s["h"])
}

選項

runtime panic  
0  
compilation error

答案

0

第 9 行中的 delete 函數不返回任何內容,如果指定的鍵不存在,則不執行任何操作。

因為鍵 h 不存在,所以 delete 函數不會執行任何操作。

第 10 行,我們正在試著打印 s["h"] 。由于映射 s 沒有關鍵字 h ,它將返回默認的 int 值,因此輸出0。

第 14 題

package main

import (  
    "fmt"
)

func main() {  
    i := -5
    j := +5
    fmt.Printf("%+d %+d", i, j)
}

選項

-5 +5
+5 +5
0 0

答案

-5 +5

格式化字符串“%+d”總是返回一個數值。因此程序輸出 -5 +5。

紙上得來終覺淺,絕知此事要躬行。

趕緊打開電腦。在你熟悉的編輯器下面,實踐上面的代碼吧。

我是 @程序員小助手,持續分享編程故事,歡迎關注。

分享到:
標簽:語言
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定