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

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.

主站蜘蛛池模板: 定兴县| 栖霞市| 珲春市| 鄄城县| 岐山县| 襄城县| 同德县| 曲阳县| 晋中市| 定兴县| 武川县| 万山特区| 原平市| 韶关市| 浑源县| 铜川市| 刚察县| 博乐市| 吴川市| 吴江市| 界首市| 郯城县| 搜索| 新龙县| 普洱| 大姚县| 浦城县| 甘肃省| 都兰县| 鄂伦春自治旗| 黑山县| 扶沟县| 手机| 兴国县| 本溪| 九龙县| 金坛市| 铁岭市| 越西县| 澜沧| 威宁|