package Ġcom . kotlin . demo . ch 1 Ċ Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . time . format . Format Style Ċ Ċ @ Experimental Unsigned Types Ċ class ĠVariable Demo Ġ{ ĊĊĠĠĠ Ġval Ġi Am An Integer : ĠInt Ġ= Ġ 1 ĠĠ Ġ// ĠIm mediate Ġassignment ĊĠĠĠ Ġval Ġi Am An Integer Too Ġ= Ġ 2 ĠĠĠĠ Ġ// ĠIn ferred Ġty e ĊĊĠĠĠ Ġval Ġmy Double : Double Ġ= Ġ 1 2 3 4 5 6 7 8 9 . 0 ĠĠĠĠĠĠ Ġ// Ġ 6 4 Ġbit ĊĠĠĠ Ġval Ġmy Float : Float Ġ= Ġ 9 9 . 9 9 f ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 2 Ġbit ĊĠĠĠ Ġval Ġmy Long : Long Ġ= Ġ 9 8 7 6 5 4 3 2 1 L ĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 6 4 Ġbit ĊĠĠĠ Ġval Ġmy Int : Int Ġ= Ġ 2 1 4 7 4 8 3 6 4 7 ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 2 Ġbit ĊĠĠĠ Ġval Ġmy Short : Short Ġ= Ġ 3 2 7 6 7 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 6 Ġbit ĊĠĠĠ Ġval Ġmy Byte : Byte Ġ= Ġ 1 2 7 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 8 Ġbit ĊĊĠĠĠ Ġval Ġmy UL ong : UL ong Ġ= Ġ 1 8 4 4 6 7 4 4 0 7 3 7 0 9 5 5 1 6 1 5 u L ĊĠĠĠ Ġval Ġmy UInt : UInt Ġ= Ġ 4 2 9 4 9 6 7 2 9 5 u ĊĠĠĠ Ġval Ġmy U Short : U Short Ġ= Ġ 6 5 5 3 5 u ĊĠĠĠ Ġval Ġmy U Byte : U Byte Ġ= Ġ 2 5 5 u ĊĊĠĠĠ Ġval Ġmy UN umber Ġ= Ġ 4 2 u ĠĠĠĠ Ġ// ĠAs Ġwide Ġas Ġit Ġcan Ġbe ... ĊĊĠĠĠ Ġ// Ġexplicit Ġconversion ĊĠĠĠ Ġval Ġa : Byte Ġ= Ġ 1 2 7 ĊĠĠĠ Ġval Ġb : Int Ġ= Ġa . toInt () ĠĠĠĠĠĠ Ġ// Ġ' a ' Ġhas Ġto Ġbe Ġconverted Ġto ĠInt , Ġeven Ġ' b ' Ġis Ġw ider ĊĊĠĠĠ Ġ// ĠValue Ġby Ġexpression ĊĠĠĠ Ġval Ġis Thursday Ġ= ĠLocalDateTime . now (). format ( DateTime Formatter . of Localized Date ( Format Style . FULL )). indexOf (" Thursday ") Ġ> Ġ- 1 ĊĊĠĠĠ Ġ// ĠStrings ĊĠĠĠ Ġvar Ġwhat Am I : String Ġ= Ġ" I Ġam ĠMutable " ĊĠĠĠ Ġval Ġdont Touch Me Ġ= Ġ" I Ġam ĠImmutable " ĊĊĠĠĠ Ġval Ġraw Ġ= Ġ""" Ċ <!-- ĠGoogle ĠTag ĠManager Ġ--> Ċ < script >( function ( w , d , s , l , i ){ w [ l ]= w [ l ] || []; w [ l ]. push ({' gtm . start ': Ċ new ĠDate (). getTime (), event :' gtm . js '}); var Ġf = d . getElementsByTagName ( s )[ 0 ], Ċ j = d . createElement ( s ), dl = l !=' data Layer ' ?' & l ='+ l :' '; j . async = true ; j . src = Ċ ' https :// www . goog let ag manager . com / gtm . js ? id ='+ i + dl ; f . parentNode . insertBefore ( j , f ); Ċ })( window , document ,' script ',' data Layer ',' G TM - 5 P 9 8 '); </ script > Ċ <!-- ĠEnd ĠGoogle ĠTag ĠManager Ġ--> Ċ """ ĊĊĊĠĠĠ Ġfun Ġsmart Cast Length Checker ( val ami : ĠAny ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( val ami Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ' val ami ' Ġis Ġautomatically Ġcast Ġto Ġ' String ' Ġin Ġthis Ġbranch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġval ami . length ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( val ami Ġis ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ' val ami ' Ġis ĠBoolean Ġhere ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( val ami ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ' val ami ' Ġis Ġstill Ġof Ġtype Ġ' Any ' Ġoutside Ġof Ġthe Ġtype - checked Ġbranch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Experimental Unsigned Types Ċ fun Ġmain () Ġ{ ĊĊĠĠĠ Ġval Ġv Demo Ġ= ĠVariable Demo () ĊĊĠĠĠ Ġprintln () ĊĠĠĠ Ġprintln (" Is Ġtoday ĠTh ursday ? Ġ${ v Demo . is Thursday }") ĊĊĊĠĠĠ Ġprintln () ĊĠĠĠ Ġprintln (" Class Ġtype Ġnames ") ĊĠĠĠ Ġprintln ( v Demo . my UN umber . java Class . name ) ĊĠĠĠ Ġprintln ( v Demo . my UN umber . java Class . kotlin ) ĊĠĠĠ Ġprintln ( v Demo . my UN umber . java Class . kotlin . qualified Name ) ĊĊĠĠĠ Ġprintln () ĊĠĠĠ Ġprintln (" Overflow Ġ-> Ġ${ ( v Demo . my U Byte Ġ)} Ġincrement ed : Ġ${ ( v Demo . my U Byte . inc ()) }") ĊĊĊĊĠĠĠ Ġprintln () ĊĠĠĠ Ġvar Ġs ss : Int ? Ġ= Ġv Demo . smart Cast Length Checker (" 1 9 ") ĊĠĠĠ Ġprintln (" V ale Ġcan Ġbe Ġnull Ġ$ sss ") ĊĠĠĠ Ġprintln (" Value Ġcan Ġbe Ġnull Ġ${ v Demo . smart Cast Length Checker ( 9 9 )} ") ĊĠĠĠ Ġprintln (" Value Ġcan Ġbe Ġnull Ġ${ v Demo . smart Cast Length Checker ( true )} ") ĊĊĠĠĠ Ġprintln () ĊĠĠĠ Ġprintln (" Raw : Ġ${ v Demo . raw }") Ċ Ċ } Ċ