官术网_书友最值得收藏!

The null syntax

Tony Hoare, the inventor of the quicksort algorithm, who introduced the concept of the null reference in 1965, called it his billion dollar mistake. Unfortunately, we have to live with null references as they are present in the JVM, but Kotlin introduces some functionality to make it easier to avoid some common mistakes.

Kotlin requires that a variable that can assigned to null be declared with ?:

    var str: String? = null 

If this is not done, the code will not compile. This next example would result in a compile-time error:

    var str: String = null 

Kotlin has much more than this to help in the fight against null pointer exceptions, and there is a full discussion of nulls and null safety in Chapter 7, Null Safety, Reflection, and Annotations.

Regarding type checking and casting, if a reference to an instance is declared as some general A type, but we want to test if we have a more specific B type, then Kotlin provides the is operator. This is equivalent to the instanceof operator in Java:

    fun isString(any: Any): Boolean { 
      return if (any is String) true else false 
    } 

If the target type is invalid (a string was trying to be cast to File), then ClassCastException will be thrown at runtime.

主站蜘蛛池模板: 商都县| 睢宁县| 津市市| 田阳县| 聂拉木县| 慈溪市| 浠水县| 东阳市| 儋州市| 隆安县| 长治县| 九寨沟县| 碌曲县| 桐城市| 泰和县| 城口县| 攀枝花市| 治多县| 门头沟区| 福鼎市| 安溪县| 定陶县| 大邑县| 保山市| 商丘市| 佛冈县| 安西县| 乐平市| 渝中区| 中宁县| 恭城| 灵璧县| 元氏县| 琼海市| 崇义县| 微山县| 桦川县| 榆中县| 章丘市| 静乐县| 株洲县|