package Ġchapter 6 Ċ Ċ fun Ġstr Len Not Safe ( s : ĠString ) Ġ= Ġs . length Ċ Ċ fun Ġstr Len Safe ( s : ĠString ?) Ġ= Ġs ?. length Ġ?: Ġ 0 Ċ Ċ open Ġclass ĠOpen Person ( val Ġname : ĠString , Ġval Ġage : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfriend : ĠOpen Person ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġother Person Ġ= Ġother Ġas ? ĠOpen Person Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġother Person . name Ġ== Ġname Ġ&& Ġother Person . age Ġ== Ġage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ= Ġname . hashCode () Ġ* Ġ 3 7 Ġ+ Ġ( age ?. hashCode () Ġ?: Ġ 0 ) ĊĊĠĠĠ Ġfun Ġis Ol der Than ( other : ĠOpen Person ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( age Ġ== Ġnull Ġ|| Ġother . age Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġage Ġ> Ġother . age ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġvar Ġs : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġs ?. let Ġ{ Ġit : ĠString Ġ-> Ġstr Len Not Safe ( it ) Ġ} ĊĊĠĠĠ Ġs Ġ= Ġ" Ġ Ġ" ĊĠĠĠ Ġprintln ( s . isNull OrEmpty ()) Ġ// Ġfalse ĊĠĠĠ Ġprintln ( s . isNull Or Blank ()) Ġ// Ġtrue ĊĊĠĠĠ Ġ// Ġstr Len Not Safe ( s !! ) Ġ// ĠKotlin NullPointerException ĊĊĠĠĠ Ġval Ġperson Ġ= ĠOpen Person (" AAA ", Ġ 2 2 ) ĊĊĠĠĠ Ġval Ġx Ġ= Ġ 1 ĊĠĠĠ Ġval Ġlist Ġ= ĠlistOf ( 1 L , Ġ 2 L , Ġ 3 L ) ĊĠĠĠ Ġprintln ( x . to Long () Ġin Ġlist ) ĊĊĠĠĠ Ġval Ġvalue Could BeNull : ĠList < Int ?> Ġ= ĠlistOf ( 1 , Ġ 2 , Ġnull , Ġ 3 , Ġ 4 , Ġnull , Ġ 5 ) ĊĠĠĠ Ġval Ġlist Could BeNull : ĠList < Int >? ĊĠĠĠ Ġval Ġboth Could BeNull : ĠList < Int ?> ? ĊĠĠĠ Ġprintln ( value Could BeNull . filter NotNull ()) Ġ// Ġ[ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 ] ĊĊ Ċ } Ċ Ċ fun Ġ< T > Ġprint HashCode ( t : ĠT ) Ġ{ Ġ// ĠT Ġcan Ġbe ĠAny ? ĊĠĠĠ Ġprintln ( t ?. hashCode ()) Ċ } Ċ Ċ fun Ġ< T Ġ: ĠAny > Ġprint HashCode 2 ( t : ĠT ) Ġ{ ĊĠĠĠ Ġprintln ( t . hashCode ()) Ċ } Ċ Ċ // Ġin Ġjava Ċ // Ġ@ Nullable Ġ+ Ġtype Ġ= Ġtype ? Ċ // Ġ@ NotNull Ġ+ Ġtype Ġ= Ġtype Ċ Ċ fun Ġ< T > Ġcopy Elements ( source : ĠCollection < T >, Ġtarget : ĠMutable Collection < T >) Ġ{ ĊĠĠĠ Ġfor Ġ( item Ġin Ġsource ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget . add ( item ) ĊĠĠĠ Ġ} Ċ }