久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

面試官:值為 nil 為什么不等于 nil ?

小明同學去面試被問到了這么一個面試題,請看代碼:

面試官:值為 nil 為什么不等于 nil ?

請問輸出結果是啥?

可能很多同學,會認為結果是輸出兩個 nil。

為什么呢?

因為 f 和 a 都沒初始化,都是 nil,所以循環遍歷后肯定也是 nil。

如果你的答案也是這樣,那就掉進坑里了。

答案是,啥都不會輸出!

且聽我慢慢給你分析:

一、變量的值和類型

我們先來打印下這兩個值:

面試官:值為 nil 為什么不等于 nil ?

我們這樣打印其實是打印的是他的值,是 nil 沒錯的。

但是類型不是 nil。

我們可以這樣打印他類型:

面試官:值為 nil 為什么不等于 nil ?

二、if 判 nil 含有對類型的判斷

當我們從 interface ?里面把對象取出來后,使用 if 進行判斷,他不單單的比較的是值,還有類型。

看下這段代碼:

面試官:值為 nil 為什么不等于 nil ?

現在看下運行結果:

面試官:值為 nil 為什么不等于 nil ?

你會發現之后最后 nil 的判斷是通過的,前面兩個判斷都不通過。

三、怎么判斷值是否為 nil

我們在寫代碼時,最好是盡量避免這種代碼,如果硬要這么寫,那我們可以通過以下兩種常見方式判 nil。

1、斷言

面試官:值為 nil 為什么不等于 nil ?

2、反射

面試官:值為 nil 為什么不等于 nil ?

你學廢了么?

原文:https://mp.weixin.qq.com/s/qPrfMgPVkl1gSLxR690zgw

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!
<p id="o0hlv"></p><pre id="o0hlv"><label id="o0hlv"></label></pre>

      主站蜘蛛池模板: 兰溪市| 玉山县| 宜黄县| 高平市| 西吉县| 三穗县| 柳州市| 汤原县| 海城市| 鄢陵县| 临沂市| 饶平县| 宁都县| 盱眙县| 历史| 都匀市| 宁陕县| 铜梁县| 乌拉特中旗| 疏勒县| 揭阳市| 马尔康县| 龙川县| 延安市| 鹤岗市| 陆河县| 禹州市| 南通市| 菏泽市| 邵东县| 泸西县| 保山市| 开平市| 寻乌县| 乌鲁木齐市| 吴川市| 西宁市| 谷城县| 淳化县| 凌海市| 宜兰县|