// Ġ! WITH _ CLASSES Ċ // Ġ! WITH _ OBJECTS Ċ Ċ /* Ċ ĠK OT LIN ĠDI AG NO ST ICS ĠSPEC ĠTEST Ġ( POSITIVE ) ĊĊ ĠSECTION S : Ġwhen - expression Ċ ĠPAR AG R APH : Ġ 7 Ċ ĠS ENT ENCE : Ġ[ 1 ] ĠType Ġtest Ġcondition : Ġtype Ġchecking Ġoperator Ġfollowed Ġby Ġtype . Ċ ĠNUMBER : Ġ 1 Ċ ĠDESCRIPTION : Ġ' When ' Ġwith Ġbound Ġvalue Ġand Ġtype Ġtest Ġcondition . Ċ Ġ*/ Ċ Ċ // ĠCASE ĠDESCRIPTION : Ġ' When ' Ġwith Ġtype Ġtest Ġcondition Ġon Ġthe Ġvarious Ġbasic Ġtypes . Ċ fun Ġcase _ 1 ( value _ 1 : ĠAny ): ĠString Ġ{ ĊĠĠĠ Ġwhen Ġ( value _ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġis ĠFloat Ġ-> Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġis ĠDouble Ġ-> Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġis ĠChar Ġ-> Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġ"" Ċ } Ċ Ċ // ĠCASE ĠDESCRIPTION : Ġ' When ' Ġwith Ġtype Ġtest Ġcondition Ġon Ġthe Ġvarious Ġnullable Ġbasic Ġtypes . Ċ fun Ġcase _ 2 ( value _ 1 : ĠAny ?): ĠString Ġ= Ġwhen Ġ( value _ 1 ) Ġ{ ĊĠĠĠ Ġis ĠInt ? Ġ-> Ġ"" Ġ// Ġif Ġvalue Ġis Ġnull Ġthen Ġthis Ġbranch Ġwill Ġbe Ġexecuted ĊĠĠĠ Ġis ĠFloat Ġ-> Ġ"" ĊĠĠĠ Ġelse Ġ-> Ġ"" Ċ } Ċ Ċ // ĠCASE ĠDESCRIPTION : Ġ' When ' Ġwith Ġ' else ' Ġbranch Ġand Ġtype Ġtest Ġcondition Ġon ĠAny . Ċ fun Ġcase _ 3 ( value _ 1 : ĠAny ?): ĠString Ġ= Ġwhen Ġ( value _ 1 ) Ġ{ ĊĠĠĠ Ġis ĠAny Ġ-> Ġ"" ĊĠĠĠ Ġelse Ġ-> Ġ"" Ċ } Ċ Ċ // ĠCASE ĠDESCRIPTION : Ġ' When ' Ġwith Ġ' else ' Ġbranch Ġand Ġtype Ġtest Ġcondition Ġon Ġnullable Ġ( red undant ) ĠAny . Ċ fun Ġcase _ 4 ( value _ 1 : ĠAny ): ĠString Ġ= Ġwhen Ġ( value _ 1 ) Ġ{ ĊĠĠĠ Ġ<! USE LESS _ IS _ CHECK !> is ĠAny <! USE LESS _ NULL ABLE _ CHECK ! >? <! >< !> Ġ-> Ġ"" ĊĠĠĠ Ġelse Ġ-> Ġ"" Ċ } Ċ Ċ /* Ċ ĠCASE ĠDESCRIPTION : Ġ' When ' Ġwith Ġ' else ' Ġbranch Ġand Ġtype Ġtest Ġcondition Ġon Ġthe Ġvarious Ġnullable Ġbasic Ġtypes Ġ( two Ġnullable Ġtype Ġcheck ). Ċ ĠUN EXPECTED ĠBE HAV IO UR Ċ ĠISS UES : ĠK T - 2 2 9 9 6 Ċ Ġ*/ Ċ fun Ġcase _ 5 ( value _ 1 : ĠAny ?): ĠString Ġ= Ġwhen Ġ( value _ 1 ) Ġ{ ĊĠĠĠ Ġis ĠDouble Ġ-> Ġ"" ĊĠĠĠ Ġis ĠInt ? Ġ-> Ġ"" Ġ// Ġif Ġvalue Ġis Ġnull Ġthen Ġthis Ġbranch Ġwill Ġbe Ġexecuted ĊĠĠĠ Ġis ĠString Ġ-> Ġ"" ĊĠĠĠ Ġis ĠFloat ? Ġ-> Ġ"" Ġ// Ġredundant Ġnullable Ġtype Ġcheck ĊĠĠĠ Ġis ĠChar Ġ-> Ġ"" ĊĠĠĠ Ġis ĠBoolean Ġ-> Ġ"" ĊĠĠĠ Ġelse Ġ-> Ġ"" Ċ } Ċ Ċ // ĠCASE ĠDESCRIPTION : Ġ' When ' Ġwith Ġtype Ġtest Ġcondition Ġon Ġthe Ġobjet cs . Ċ fun Ġcase _ 6 ( value _ 1 : ĠAny ): ĠString Ġ{ ĊĠĠĠ Ġwhen Ġ( value _ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Ġ_ Empty Object Ġ-> Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġis Ġ_ Class With Companion Object . Companion Ġ-> Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġ"" Ċ } Ċ