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

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.

主站蜘蛛池模板: 祁东县| 阳高县| 昭通市| 溧阳市| 永福县| 清流县| 林西县| 嘉义县| 崇信县| 福安市| 内江市| 朔州市| 江安县| 迭部县| 通化县| 喜德县| 望谟县| 盐池县| 宽城| 瑞金市| 中江县| 西昌市| 顺义区| 白山市| 镇赉县| 巫溪县| 鲁甸县| 定日县| 同仁县| 涿鹿县| 板桥市| 古浪县| 安塞县| 博白县| 义马市| 庆元县| 博乐市| 健康| 淳安县| 凌源市| 都江堰市|