/** Ċ Ġ* ĠCreated Ġby ĠTech pass ĠMaster Ġon Ġ 8 - April - 2 1 . Ċ Ġ* ĠWebsite Ġ- Ġhttps :// tech pass master . com / Ċ Ġ* ĠEmail Ġid Ġ- Ġhello @ tech pass master . com Ċ Ġ*/ ĊĊ Ċ // Ġ ĠNull ĠS afety Ċ Ċ // Ġ ĠThere Ġare Ġ 4 Ġtype Ġof Ġnull Ġsafety Ċ // ĠĠ 1 . ĠSafe ĠCall ĠOperator ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . Ċ // ĠĠ 2 . ĠSafe Ġcall Ġwith Ġlet ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ .. } Ċ // ĠĠ 3 . Ġ ĠEl vis ĠOperator ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ċ // ĠĠ 4 . ĠNot - null ĠAssertion ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ!! ĊĊ Ċ fun Ġmain () Ġ{ Ċ Ċ // ĠĠĠ ĠW AP Ġto Ġfind Ġout Ġlength Ġof Ġname . ĊĊĠĠĠ Ġvar Ġname Ġ: ĠString ? ĠĠ Ġ= ĠĠ Ġ"" Ċ Ċ // ĠĠ 1 . ĠSafe ĠCall ĠOperator ĠĠĠĠĠĠ Ġ? . ĊĠĠĠ Ġ// Ġ ĠReturn Ġthe Ġlength Ġif Ġ' name ' Ġis Ġnot Ġnull Ġelse Ġreturn Ġnull ĊĠĠĠ Ġ// ĠUse Ġit Ġif Ġdon 't Ġmind Ġgetting Ġnull Ġvalue ĊĊĠĠĠ Ġprintln (" Name Ġis Ġ${ name ?. length }") ĊĊ Ċ // ĠĠ 2 . ĠSafe Ġcall Ġwith Ġlet ĠĠĠĠĠĠ Ġ? . let Ġ{ .. } ĊĠĠĠ Ġ// ĠĠĠ ĠIt Ġexecutes Ġthe Ġblock ĠONLY Ġif Ġname Ġis ĠNOT ĠNULL ĊĊĠĠĠ Ġname ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Name Ġis Ġ${ name ?. length }") ĊĊĠĠĠ Ġ} ĊĊ Ċ // ĠĠ 3 . Ġ ĠEl vis ĠOperator ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĊĠĠĠ Ġ// Ġwhen Ġwe Ġhave Ġnullable Ġreference Ġ' name ' Ġwe Ġcan Ġsay Ġ" is Ġname Ġis Ġnot Ġnull ", Ġuse Ġit , ĊĠĠĠ Ġ// Ġotherwise Ġuse Ġsome Ġnullable Ġvalue " ĊĊĠĠĠ Ġval Ġlen Ġ= Ġif Ġ( name != null ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġname . length ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠ Ġ} ĊĠĠĠ Ġprintln (" Name Ġis Ġ$ len ") ĊĊĊĠĠĠ Ġval Ġl enght = name ?. length Ġ?: Ġ- 1 ĊĠĠĠ Ġprintln (" Name Ġis Ġ${ l enght }") ĊĊ Ċ // ĠĠ 4 . ĠNot - null ĠAssertion ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ!! ĊĠĠĠ Ġ// ĠUse Ġit Ġwhen Ġyou Ġare Ġsure Ġthe Ġval u Ġis ĠNOT ĠNULL ĊĠĠĠ Ġ// ĠThrows ĠNullPointerException Ġif Ġthe Ġvalue Ġis Ġfound Ġto Ġbe Ġnull ĊĊĠĠĠ Ġprintln (" Name Ġis Ġ${ name !!. length }") Ċ Ċ }