-
面試官:值為 nil 為什么不等于 nil ?
小明同學(xué)去面試被問到了這么一個(gè)面試題,請看代碼: 請問輸出結(jié)果是啥? 可能很多同學(xué),會(huì)認(rèn)為結(jié)果是輸出兩個(gè) nil。 為什么呢? 因?yàn)?f 和 a 都沒初始化,都是 nil,所以循環(huán)遍歷后肯定也是 nil。 如果你的答案也是這樣,那就掉進(jìn)坑里了。 答案是,啥都不會(huì)輸出! 且聽我慢慢給你分析: 一、變量的值和類型 我們先來打印下這兩個(gè)值: 我們這樣打印其實(shí)是打印的是他的值,是 nil 沒錯(cuò)的。 但是類型不是 nil。 我們可以這樣打印他類型: 二、if 判 nil 含有對類型的判斷 當(dāng)我們從 int…
-
面試官:值為 nil 為什么不等于 nil ?
小明同學(xué)去面試被問到了這么一個(gè)面試題,請看代碼: var?f?func() var?a?*struct{} list?:=?[]interface{}{f,?a} for?_,?item?:=?range?list?{ ?if?item?==?nil?{ ??fmt.Println("nil") ?} } 請問輸出結(jié)果是啥? 可能很多同學(xué),會(huì)認(rèn)為結(jié)果是輸出兩個(gè) nil。 為什么呢? 因?yàn)?f 和 a 都沒初始化,都是 nil,所以循環(huán)遍歷后肯定也是 nil。 如果你的答案也是這樣,那就掉進(jìn)坑里了…