/** Ċ Ġ* Ġ@ author ĠEric Z hang Ċ Ġ* Ġ@ email Ġ eric zhang is working @ gmail . com Ċ Ġ* Ġ@ date Ġ 2 0 1 7 / 1 1 / 2 6 Ġä¸Ĭ åįĪ 1 1 : 1 0 Ċ Ġ*/ Ċ package ĠKotlin Document . Get Started ĊĊ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġprint Sum 1 ( 1 , Ġ 2 ) ĊĠĠĠ Ġprint Sum 2 ( 2 , Ġ 3 ) ĊĊĠĠĠ Ġtest String Template () ĊĊĠĠĠ Ġprint Product (" h aha ", Ġ" he he ") ĊĠĠĠ Ġprint Product 2 (" h aha ", Ġ" he he ") ĊĊĠĠĠ Ġtest For () ĊĠĠĠ Ġtest For 2 () ĊĊĠĠĠ Ġtest While () ĊĊĠĠĠ Ġprintln ( description (" Hello ")) ĊĊĠĠĠ Ġtest In () ĊĠĠĠ Ġtest In 2 () ĊĠĠĠ Ġtest In 3 () ĊĠĠĠ Ġtest In 4 () ĊĊĠĠĠ Ġtest Collection Filter () Ċ } Ċ Ċ fun Ġsum 1 ( a : ĠInt , Ġb : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġa Ġ+ Ġb Ċ } Ċ Ċ fun Ġsum 2 ( a : ĠInt , Ġb : ĠInt ) Ġ= Ġa Ġ+ Ġb Ċ Ċ fun Ġprint Sum 1 ( a : ĠInt , Ġb : ĠInt ): ĠUnit Ġ{ ĊĠĠĠ Ġprintln (" sum Ġof Ġ$ a Ġand Ġ$ b Ġis Ġ${ a Ġ+ Ġb }") Ċ } Ċ Ċ fun Ġprint Sum 2 ( a : ĠInt , Ġb : ĠInt ) Ġ{ ĊĠĠĠ Ġprintln (" sum Ġof Ġ$ a Ġand Ġ$ b Ġis Ġ${ a Ġ+ Ġb }") Ċ } Ċ Ċ fun Ġlocal Val Def () Ġ{ ĊĠĠĠ Ġval Ġa : ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġval Ġb Ġ= Ġ 2 ĊĠĠĠ Ġval Ġc : ĠInt ĊĠĠĠ Ġc Ġ= Ġ 3 ĊĊĠĠĠ Ġvar Ġx Ġ= Ġ 5 ĊĠĠĠ Ġx Ġ+= Ġ 1 Ċ } Ċ Ċ fun Ġtest String Template () Ġ{ ĊĠĠĠ Ġvar Ġa Ġ= Ġ 1 ĊĠĠĠ Ġ// Ġæ¨¡ æĿ¿ ä¸ŃçļĦ ç®Ģåįķ åĲįç§° ĊĠĠĠ Ġval Ġs 1 Ġ= Ġ" a Ġis Ġ$ a " ĊĊĠĠĠ Ġa Ġ= Ġ 2 ĊĠĠĠ Ġ// Ġæ¨¡ æĿ¿ ä¸ŃçļĦ ä»»æĦı è¡¨è¾¾å¼ı ĊĠĠĠ Ġval Ġs 2 Ġ= Ġ"${ s 1 . replace (" is ", Ġ" was ")}, but Ġnow Ġis Ġ$ a " ĊĊĠĠĠ Ġprintln ( s 1 ) ĊĠĠĠ Ġprintln ( s 2 ) Ċ } Ċ Ċ fun Ġmax Of ( a : ĠInt , Ġb : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( a Ġ> Ġb ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġa ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġb ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmax Of 2 ( a : ĠInt , Ġb : ĠInt ) Ġ= Ġif Ġ( a Ġ> Ġb ) Ġa Ġelse Ġb Ċ Ċ fun ĠparseInt ( str : ĠString ): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġ 2 Ċ } Ċ Ċ fun Ġprint Product ( arg 1 : ĠString , Ġarg 2 : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġx Ġ= ĠparseInt ( arg 1 ) ĊĠĠĠ Ġval Ġy Ġ= ĠparseInt ( arg 2 ) ĊĊĠĠĠ Ġ// Ġ çĽ´æİ¥ ä½¿çĶ¨ Ġ' x Ġ* Ġy ' Ġ åı¯èĥ½ä¼ļ æĬ¥éĶĻ ï¼Į åĽłä¸º å®ĥä»¬ åı¯èĥ½ ä¸º null ĊĠĠĠ Ġif Ġ( x Ġ!= Ġnull Ġ&& Ġy Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġåľ¨ ç©º æ£Ģæµĭ åĲİ ï¼Į x åĴĮ y ä¼ļ èĩªåĬ¨ è½¬æį¢ ä¸º éĿŀ ç©º åĢ¼ ĊĠĠĠĠĠĠĠ Ġprintln ( x Ġ* Ġy ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" either Ġ'$ arg 1 ' Ġor Ġ'$ arg 2 ' Ġis Ġnot Ġa Ġnumber ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġprint Product 2 ( arg 1 : ĠString , Ġarg 2 : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġx Ġ= ĠparseInt ( arg 1 ) ĊĠĠĠ Ġval Ġy Ġ= ĠparseInt ( arg 2 ) ĊĊĠĠĠ Ġif Ġ( x Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Wrong Ġnumber Ġformat Ġin Ġarg 1 : Ġ'$ arg 1 '") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( y Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Wrong Ġnumber Ġformat Ġin Ġarg 1 : Ġ'$ arg 2 '") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġåľ¨ ç©º æ£Ģæµĭ åĲİ ï¼Į x ĠåĴĮ Ġy Ġä¼ļ èĩªåĬ¨ è½¬æį¢ ä¸º éĿŀ ç©º åĢ¼ ĊĠĠĠ Ġprintln ( x Ġ* Ġy ) Ċ } Ċ Ċ fun ĠgetString Length ( obj : ĠAny ): ĠInt ? Ġ{ ĊĠĠĠ Ġif Ġ( obj Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġobj Ġåľ¨ è¯¥ æĿ¡ä»¶ åĪĨ æĶ¯ åĨħ èĩªåĬ¨ è½¬æį¢ æĪĲ ĠString ĊĠĠĠĠĠĠĠ Ġreturn Ġobj . length ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġåľ¨ ç¦» å¼Ģ ç±»åŀĭ æ£Ģæµĭ åĪĨ æĶ¯ åĲİ ï¼Į obj Ġ ä»į çĦ¶ æĺ¯ ĠAny Ġ ç±»åŀĭ ĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ fun ĠgetString Length 2 ( obj : ĠAny ): ĠInt ? Ġ{ ĊĠĠĠ Ġif Ġ( obj Ġ! is ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġobj Ġåľ¨ è¿Ļä¸Ģ åĪĨ æĶ¯ èĩªåĬ¨ è½¬æį¢ æĪĲ ĠString ĊĠĠĠ Ġreturn Ġobj . length Ċ } Ċ Ċ fun ĠgetString Length 3 ( obj : ĠAny ): ĠInt ? Ġ{ ĊĠĠĠ Ġ// Ġobj Ġåľ¨ Ġ&& Ġ åı³ è¾¹ èĩªåĬ¨ è½¬æį¢ æĪĲ ĠString Ġ ç±»åŀĭ ĊĠĠĠ Ġif Ġ( obj Ġis ĠString Ġ&& Ġobj . length Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobj . length ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ fun Ġtest For () Ġ{ ĊĠĠĠ Ġval Ġitems Ġ= ĠlistOf (" apple ", Ġ" ban ana ", Ġ" ki wi ") ĊĠĠĠ Ġfor Ġ( item Ġin Ġitems ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("$ item Ġlength Ġis Ġ${ item . length }") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtest For 2 () Ġ{ ĊĠĠĠ Ġval Ġitems Ġ= ĠlistOf (" apple ", Ġ" ban ana ", Ġ" ki wi ") ĊĠĠĠ Ġfor Ġ( index Ġin Ġitems . indices ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" item Ġat Ġ$ index Ġis Ġ${ items [ index ]} ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtest While () Ġ{ ĊĠĠĠ Ġval Ġitems Ġ= ĠlistOf (" apple ", Ġ" ban ana ", Ġ" ki wi ") ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠ Ġwhile Ġ( index Ġ< Ġitems . size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" item Ġat Ġ$ index Ġis Ġ${ items [ index ]} ") ĊĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġdescription ( obj : ĠAny ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( obj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ" One " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Hello " Ġ-> Ġ" G reeting " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġ" Long " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! is ĠString Ġ-> Ġ" Not Ġa Ġstring " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Un know " ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun Ġtest In () Ġ{ ĊĠĠĠ Ġval Ġx Ġ= Ġ 1 0 ĊĠĠĠ Ġval Ġy Ġ= Ġ 9 ĊĠĠĠ Ġ// Ġ åĮħæĭ¬ 1 åĴĮ y + 1 ĊĠĠĠ Ġif Ġ( x Ġin Ġ 1 .. y Ġ+ Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" fits Ġin Ġrange ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtest In 2 () Ġ{ ĊĠĠĠ Ġval Ġlist Ġ= ĠlistOf (" a ", Ġ" b ", Ġ" c ") ĊĠĠĠ Ġif Ġ(- 1 Ġ! in Ġ 0 .. list . last Index ) Ġ{// Ġtrue ĊĠĠĠĠĠĠĠ Ġprintln ("- 1 Ġis Ġout Ġof Ġrange ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( list . size Ġ! in Ġlist . indices ) Ġ{// Ġtrue ĊĠĠĠĠĠĠĠ Ġprintln (" list Ġsize Ġis Ġout Ġof Ġvalid Ġlist Ġindices Ġrange Ġtoo ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtest In 3 () Ġ{ ĊĠĠĠ Ġfor Ġ( x Ġin Ġ 1 .. 5 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( x ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtest In 4 () Ġ{ ĊĠĠĠ Ġfor Ġ( x Ġin Ġ 1 .. 1 0 Ġstep Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( x ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( x Ġin Ġ 1 0 Ġdown To Ġ 0 Ġstep Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( x ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtest Collection Filter () Ġ{ ĊĠĠĠ Ġval Ġlist Ġ= ĠlistOf (" ban ana ", Ġ" apple ", Ġ" app ", Ġ" big ger ", Ġ" zip per ", Ġ" agent ", Ġ" eric zhang ") ĊĠĠĠ Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . startsWith (" a ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit Ġ}// Ġ æĮī åŃĹ æ¯į é¡ºåºı æİĴåºı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toUpperCase () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġprintln ( it ) Ġ} ĊĊĠĠĠ Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . startsWith (" a ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit [ 2 ] Ġ}// Ġ æĮī ç¬¬ä¸ī ä¸ª åŃĹ æ¯į æİĴåºı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toUpperCase () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġprintln ( it ) Ġ} Ċ } Ċ