/** Ċ Ġ* ĠSome Ġstandard Ġfunctions Ġto Ġbe Ġcovered : Ċ Ġ* Ġrun , Ġwith , ĠT . run , ĠT . let , ĠT . also Ġand ĠT . apply Ċ Ġ*/ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġtest RunWith Let Also Apply ( true ) Ċ } Ċ Ċ fun Ġtest RunWith Let Also Apply ( is The Che mist : ĠBoolean ) Ġ{ ĊĠĠĠ Ġval Ġw alter Ġ= ĠPerson (" W alter ", Ġ" White ") ĊĠĠĠ Ġval Ġj ess i Ġ= ĠPerson (" J ess i ", Ġ" P ink man ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġrun Ġscope Ġcan Ġlet Ġyou Ġre defined Ġanother Ġvariable Ġwith Ġthe Ġsame Ġname , Ġi . e . Ġm ood , ĊĠĠĠĠ Ġ* Ġwith Ġa Ġdifferent Ġvalue . ĊĠĠĠĠ Ġ* Ġrun Ġfunction Ġreturn Ġthe Ġlast Ġobject Ġwithin Ġthe Ġscope , ĊĠĠĠĠ Ġ* Ġtherefore Ġin Ġthis Ġcase , Ġwe Ġdon 't Ġneed Ġto Ġcall Ġsay My Name () Ġtwice . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhe is en berg Ġ= ĠPerson (" He is en berg ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is The Che mist ) Ġw alter Ġelse Ġj ess i ĊĠĠĠĠĠĠĠ Ġhe is en berg ĊĠĠĠ Ġ}. say My Name () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComparison Ġbetween Ġwith () Ġand ĠT . run (): Ġthey Ġhave Ġthe Ġsame Ġusage . ĊĠĠĠĠ Ġ* ĠUse ĠT . run () Ġas Ġan Ġextension Ġfunction Ġso Ġit Ġcan Ġbe Ġeasier Ġto Ġcheck Ġnull , Ġor Ġpre conditions ĊĠĠĠĠ Ġ* Ġbefore Ġrunning Ġthe Ġin - scope Ġlogic . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// T . run () Ġis Ġan Ġextension Ġfunction , Ġwhereas ĊĠĠĠ Ġw alter . run Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . say My Name () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġwith () Ġis Ġa Ġnormal Ġfunction . ĊĠĠĠ Ġwith ( j ess i ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . say My Name () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġagent S chr ader Ġ= ĠPerson Ġ(" H ank ", Ġ" S chr ader ") ĊĊĠĠĠ Ġ// T . run () Ġuses Ġthis Ġinside Ġthe Ġscope Ġas Ġargument ĊĠĠĠ Ġagent S chr ader . run Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" The Ġname Ġof Ġthis Ġperson Ġis Ġ$ firstName ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// T . let () Ġuses Ġit Ġinside Ġthe Ġscope Ġas Ġargument ĊĠĠĠ Ġagent S chr ader . let Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" The Ġlast Ġname Ġof Ġthis Ġperson Ġis Ġ${ it . lastName }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// T . let () Ġallows Ġcustom izing Ġargument 's Ġname Ġfor Ġbetter Ġread ability ĊĠĠĠ Ġagent S chr ader . let Ġ{ Ġthe As ac Ġ-> Ġprintln (" The ĠAS AC 's Ġname Ġis Ġ${ the As ac . firstName } Ġ${ the As ac . lastName }") Ġ} ĊĊĠĠĠ Ġ// ĠT . let () Ġreturns Ġthe Ġvariable Ġat Ġthe Ġlast Ġline Ġof Ġthe Ġblock . ĊĠĠĠ Ġ// ĠUseful Ġfor Ġchaining Ġoperation ĊĠĠĠ Ġw alter . let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . firstName Ġ= Ġ" He is en berg " ĊĠĠĠĠĠĠĠ Ġit ĊĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( it . firstName ) ĊĠĠĠĠĠĠĠ Ġagent S chr ader . firstName Ġ= Ġ" H en ry " ĊĠĠĠĠĠĠĠ Ġagent S chr ader ĊĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . say My Name () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠT . also () Ġreturn Ġthe Ġsame Ġvariable Ġthat Ġis Ġbeing Ġpassed Ġin Ġto Ġthe Ġfunction , ĊĠĠĠ Ġ// Ġwith Ġmodified Ġvalue Ġif Ġbeing Ġchanged Ġwithin Ġthe Ġblock ĊĠĠĠ Ġw alter . also Ġ{ ĊĠĠĠĠĠĠĠ Ġit . firstName Ġ= Ġ" He is en berg " ĊĠĠĠĠĠĠĠ Ġj ess i ĊĠĠĠ Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( it . firstName ) ĊĠĠĠĠĠĠĠ Ġagent S chr ader . firstName Ġ= Ġ" H en ry " ĊĠĠĠĠĠĠĠ Ġagent S chr ader ĊĠĠĠ Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠ Ġit . say My Name () ĊĠĠĠ Ġ} Ċ }