package Ġcom . gas . ext ĊĊ Ċ /** Ċ Ġ* Ġ åıĳçİ° å¥½ å¤ļ åľ°æĸ¹ éľĢè¦ģ Ġtry Catch Ġä»¥ ä¿Ŀè¯ģ ä»£çłģ å®īåħ¨ æĢ§ Ċ Ġ* Ġ ä½Ĩæĺ¯ æĪĳä»¬ åıĪ ä¸į åħ³ å¿ĥ å®ĥçļĦ è¿Ĳè¡Į ç»ĵæŀľ ï¼Į æīĢä»¥ åįķ çĭ¬ åĨĻ äºĨä¸Ģä¸ª æĸ¹æ³ķ Ċ Ġ* Ġå°Ĩ éľĢè¦ģ è¿Ĳè¡Į çļĦä»£çłģ åĿĹ çĶ¨ Ġtry Catch Ġ åĮħ è£ ¹ èµ·æĿ¥ Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > ĠT . run In Try Catch ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} Ċ } Ċ /** Ċ Ġ* Ġä¸į æī§è¡Į ä»»ä½ķ æĵįä½ľ çļĦ éĹŃ åĮħ ãĢĤ Ċ Ġ*/ Ċ val Ġnop : ĠAny . () Ġ-> ĠUnit Ġ= Ġ{} Ċ Ċ /** Ċ Ġ* Ġ ç»Ļ ä¸Ģä¸ª Int èī² åĢ¼ åĬł ä¸Ĭ ä¸Ģä¸ª éĢı æĺİ åº¦ ãĢĤ Ċ Ġ* Ġ( éĩį è½½ æİī åİŁ æĿ¥çļĦ éĢı æĺİ åº¦ ) Ċ Ġ*/ Ċ fun ĠInt . with Alpha ( alpha : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġrequire ( alpha Ġin Ġ 0 f .. 1 . 0 f ) ĊĠĠĠ Ġreturn Ġ(( this Ġshl Ġ 8 ) Ġshr Ġ 8 ) Ġ+ Ġ(( 0 xff Ġ* Ġalpha ). toInt () Ġshl Ġ 2 4 ) Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ ĠInt Range Ġ éĩĮ è¾¹ åı¯èĥ½ åĩºçİ° çļĦ æķ´æķ° çļĦ ä¸ªæķ° , Ġ èĮĥåĽ´ ä¸º éĹŃ åĮº éĹ´ . Ċ Ġ* Ġæ¯ Ķ å¦Ĥ è¯´ Ġ 3 .. 5 ĠçļĦ ĠRange Ġ ä»£è¡¨ åı¯ä»¥ åıĸ Ġ 3 , Ġ 4 , Ġ 5 Ġ ä¸īä¸ª åĢ¼ , Ċ Ġ* Ġ æīĢä»¥ è¿ĻéĩĮ çļĦ Ġint Count Ġ åĢ¼ä¸º Ġ 3 Ċ Ġ*/ Ċ val ĠInt Range . int Count : ĠInt ĊĠĠĠ Ġget () Ġ= Ġlast Ġ- Ġfirst Ġ+ Ġ 1 Ċ Ċ /** Ċ Ġ* Ġ ç»Ļ å®ļ ä¸Ģä¸ª æķ´æķ° çļĦ Range , Ġ éļıæľº è¿ĶåĽŀ å±ŀ äºİ è¿Ļä¸ª Range çļĦ æķ´æķ° åĢ¼ . Ċ Ġ*/ Ċ fun ĠInt Range . random () Ġ= Ġstart Ġ+ Ġ( Math . random () Ġ* Ġint Count ). toInt () Ċ Ċ /** Ċ Ġ* Ġ éļıæľº è¿ĶåĽŀ ä¸Ģä¸ª Array éĩĮ è¾¹ çļĦä¸Ģ é¡¹ . Ċ Ġ* Ġå¦Ĥæŀľ Array ä¸ºç©º , Ġä¼ļ æĬĽ å¼Ĥå¸¸ Ċ Ġ*/ Ċ fun Ġ< T > ĠArray < T >. random Item (): ĠT Ġ{ ĊĠĠĠ Ġif Ġ( isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArray Index OutOfBoundsException (" array Ġis Ġempty ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġget (( 0 Ġuntil Ġsize ). random ()) Ċ } Ċ Ċ /** Ċ Ġ* Ġ éļıæľº è¿ĶåĽŀ ä¸Ģä¸ª Array éĩĮ è¾¹ çļĦä¸Ģ é¡¹ . Ċ Ġ* Ġå¦Ĥæŀľ Array ä¸ºç©º , Ġä¼ļ è¿ĶåĽŀ null Ċ Ġ*/ Ċ fun Ġ< T > ĠArray < T >. random Item OrNull () Ġ= Ġtry Ġ{ ĊĠĠĠ Ġrandom Item () Ċ } Ġcatch Ġ( e : ĠArray Index OutOfBoundsException ) Ġ{ ĊĠĠĠ Ġnull Ċ } Ċ Ċ fun Ġ< T > ĠList < T >. random Item (): ĠT Ġ{ ĊĠĠĠ Ġif Ġ( isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArray Index OutOfBoundsException (" list Ġis Ġempty ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġget (( 0 Ġuntil Ġsize ). random ()) Ċ } Ċ Ċ /** Ċ Ġ* Ġ éļıæľº è¿ĶåĽŀ ä¸Ģä¸ª List éĩĮ è¾¹ çļĦä¸Ģ é¡¹ . Ċ Ġ* Ġå¦Ĥæŀľ List ä¸ºç©º , Ġä¼ļ è¿ĶåĽŀ null Ċ Ġ*/ Ċ fun Ġ< T > ĠList < T >. random Item OrNull () Ġ= Ġtry Ġ{ ĊĠĠĠ Ġrandom Item () Ċ } Ġcatch Ġ( e : ĠArray Index OutOfBoundsException ) Ġ{ ĊĠĠĠ Ġnull Ċ } Ċ Ċ /** Ċ Ġ* ĠåĪ¤æĸŃ ä¸Ģä¸ª ç±» æĺ¯åĲ¦ æĺ¯ åı¦ ä¸Ģä¸ª ç±»çļĦ åŃĲ ç±» ï¼Į æĪĸèĢħ å®ŀçİ° ãĢĤ Ċ Ġ* Ċ Ġ* Ġ ä¾ĭå¦Ĥ ï¼ļ Ċ Ġ* Ġclass ĠSome Class Ġextends ĠBaseClass Ġimplement ĠInterface Ċ Ġ* Ġclass ĠSome Child Class Ġextends ĠSome Class ĠçļĦ æĥħåĨµä¸ĭ ï¼Į Ċ Ġ* Ċ Ġ* Ġä¸ĭ è¿° åĩł ç§į æĥħåĨµ éĥ½ä¼ļ è¿ĶåĽŀ true ãĢĤ Ċ Ġ* Ċ Ġ* Ġis InstanceOf ( Some Class . class , ĠSome Class . class ) Ċ Ġ* Ġis InstanceOf ( Some Class . class , ĠBaseClass . class ) Ċ Ġ* Ġis InstanceOf ( Some Class . class , ĠInterface . class ) Ċ Ġ* Ġis InstanceOf ( Some Child Class . class , ĠBaseClass . class ) Ċ Ġ* Ġis InstanceOf ( Some Child Class . class , ĠInterface . class ) Ċ Ġ* Ġis InstanceOf ( Some Child Class . class , ĠSome Class . class ) Ċ Ġ* Ċ Ġ* Ġ@ param Ġcls Ġ Ġ è¦ģ åĪ¤æĸŃ çļĦ class Ċ Ġ* Ġ@ param Ġtype Ġ è¦ģ åĪ¤æĸŃ çļĦ cls æĺ¯ ä¸įæĺ¯ ç¬¦åĲĪ çļĦ ç±»åŀĭ ãĢĤ Ċ Ġ* Ġ@ return Ġå¦Ĥæŀľ cls æĺ¯ type çļĦ åŃĲ ç±» æĪĸèĢħ å®ŀçİ° ï¼Ī åĮħæĭ¬ å¤ļ éĩį ç»§æī¿ çļĦ æĥħåĨµ ï¼īï¼Į è¿ĶåĽŀ true ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ false ãĢĤ Ċ Ġ*/ Ċ fun Ġis InstanceOf ( cls : ĠClass < *> ?, Ġtype : ĠClass < *> ): ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġcl ss Ġ= Ġcls ĊĠĠĠ Ġwhile Ġ( cl ss Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cl ss Ġ== Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġinterfaces Ġ= Ġcl ss . interfaces ĊĠĠĠĠĠĠĠ Ġfor Ġ( ifs Ġin Ġinterfaces ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ifs Ġ== Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcl ss Ġ= Ġcl ss . super class ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* ĠåĪ¤æĸŃ ä¸Ģä¸ª å¯¹è±¡ å±ŀ äºİ çļĦ ç±» æĺ¯åĲ¦ æĺ¯ åı¦ ä¸Ģä¸ª ç±»çļĦ åŃĲ ç±» æĪĸèĢħ å®ŀçİ° ãĢĤ Ċ Ġ* Ċ Ġ* Ġ ç±»ä¼¼ äºİ [ . isInstanceOf ] ï¼Į ä½Ĩæĺ¯ åıĤæķ° çķ¥ æľī ä¸įåĲĮ ãĢĤ Ċ Ġ* Ċ Ġ* Ġ@ param Ġobj Ġ Ġ è¦ģ åĪ¤æĸŃ çļĦ å¯¹è±¡ Ċ Ġ* Ġ@ param Ġtype Ġ è¦ģ åĪ¤æĸŃ çļĦ å¯¹è±¡ æĺ¯ ä¸įæĺ¯ ç¬¦åĲĪ çļĦ ç±»åŀĭ ãĢĤ Ċ Ġ* Ġ@ return Ġå¦Ĥæŀľ obj æīĢ å±ŀ çļĦ ç±» æĺ¯ cls çļĦ åŃĲ ç±» æĪĸèĢħ å®ŀçİ° ï¼Ī åĮħæĭ¬ å¤ļ éĩį ç»§æī¿ çļĦ æĥħåĨµ ï¼īï¼Į è¿ĶåĽŀ true ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ false ãĢĤ Ċ Ġ*/ Ċ fun Ġis InstanceOf ( obj : ĠAny ?, Ġtype : ĠClass < *> ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġobj Ġ!= Ġnull Ġ&& Ġis InstanceOf ( obj . java Class , Ġtype ) Ċ }