下面這段**能否編譯通過?如果可以,輸出什麼?
package main
import (
"fmt"
)const (
x = iota_y
z = "zz"
k p = iota
)func main()
//結果:0 2 zz zz 5
解析:iota是golang語言的常量計數器,只能在常量的表示式中使用。iota在const關鍵字出現時將被重置為0(const內部的第一行之前),const中每新增一行常量宣告將使iota計數一次(iota可理解為const語句塊中的行索引)。使用iota能簡化定義,在定義列舉時很有用。可以使用下劃線跳過不想要的值
下面賦值正確的是()
參***及解析:bd。知識點:nil 值。nil 只能賦值給指標、chan、func、inte***ce、map 或 slice 型別的變數。強調下 d 選項的 error 型別,它是一種內建介面型別,看下方貼出的原始碼就知道,所以 d 是對的。
type error inte***ce
關於init函式,下面說法正確的是()
init() 函式是用於程式執行前做包的初始化的函式,比如初始化包裡的變數等;
乙個包可以出線多個 init() 函式,乙個原始檔也可以包含多個 init() 函式;
同乙個包中多個 init() 函式的執行順序沒有明確定義,但是不同包的init函式是根據包匯入的依賴關係決定的(看下圖);
init() 函式在**中不能被顯示呼叫、不能被引用(賦值給函式變數),否則出現編譯錯誤;
乙個包被引用多次,如 a import b,c import b,a import c,b 被引用多次,但 b 包只會初始化一次;
引入包,不可出現死循壞。即 a import b,b import a,這種情況編譯失敗;
下面這段**輸出什麼以及原因?
package main
import (
"fmt"
)func hello() string
func main() else
}答案及解析:b。這道題目裡面,是將 hello() 賦值給變數 h,而不是函式的返回值,所以輸出 not nil。
下面這段**能否編譯通過?如果可以,輸出什麼?
package mainfunc getvalue() int
func main() :
println("inte***ce")
default:
println("unknown")
}}
golang開發筆記No 1
問題 下面這段 輸出 func main m make map int int for key,val range slice for k,v range m 結果 0 3 1 3 2 3 3 3參考解析 這是新手常會犯的錯誤寫法,for range 迴圈的時候會建立每個元素的副本,而不是元素的引用...
golang開發筆記No 6
關於channel,下面語法正確的是 下面這段 輸出什麼?package main import fmt type person struct func main fmt.println m p 參 及解析 0,列印乙個 map 中不存在的值時,返回元素型別的零值。這個例子中,m 的型別是 map ...
H5開發筆記
這兩天h5靜態頁面開發過程中的問題總結。1.viewport 移動開發必須的配置 內容寬為裝置寬度,初始化縮放倍數為1 不縮放 2.rem和px 1 px是相對於顯示器螢幕解析度而言的相對長度單位。2 rem是相對根元素的font size大小的相對單位,可以做到只修改根元素font size大小就...