1. Kotlinãšã¯
Kotlinã¯ãæ¥ã ã®ãœãããŠã§ã¢éçºãçŽæçã§å¹ççã«ããããšãäž»ãªç®çãšããããã°ã©ãã³ã°èšèªã§ããæ¢åã®Javaãã€ãã³ãŒãJVMãJavaScriptãªã©ãå€ãã®ãµãŒããŒãã¯ã©ã€ã¢ã³ããµã€ãã®ãã©ãããã©ãŒã ã§ã®äœ¿çšãå¯èœã§ãã
1.1 Kotlinã®æŽå²ãšç¹åŸŽ
Kotlinã¯ã2011幎㫠JetBrains瀟ã«ãã£ãŠéçºããã2016幎ã«å®å®ç1.0ãšããŠãªãªãŒã¹ãããŸãããJavaãžã®å®å šãªäºææ§ãã·ã³ãã«ããéå¯å€æ§ãããã©ã«ããªã©ãå€ãã®é«åºŠãªæ©èœãæã€ããšã§ãä»ã®ããã°ã©ãã³ã°èšèªãšäžç·ãç»ããŠããŸãã
ãŸããKotlinã§ã¯Nullå®å šãªã©ã®ç¹åŸŽããããNullåç §ã«ãããã°ãé²ãããã®èšèªã¬ãã«ã®ãµããŒããæäŸãããŠããŸãããããã¯ãKotlinãæäŸããããã°ã©ãã³ã°ç°å¢ããå¹ççã§ãå質ã®é«ããœãããŠã§ã¢éçºã匷ãæ¯ããŠããããšã瀺ããŠããŸãã
1.2 ä»ã®ããã°ã©ãã³ã°èšèªãšã®æ¯èŒ
Javaãšæ¯èŒãããšãKotlinã®æ倧ã®å©ç¹ã¯ãã³ãŒããã·ã³ãã«ã«ãªãããšã§ããKotlinã¯åŒ·åãªåæšè«ãæã£ãŠãããå€æ°ã®åãæ瀺çã«æå®ããå¿ èŠããªããããã³ãŒãã®èªã¿ããããšä¿å®æ§ãåäžããŸãã
äžæ¹ãPythonãªã©ã®åçåä»ãèšèªãšæ¯ã¹ããšãéçåä»ãèšèªã§ããKotlinã¯ãã³ã³ãã€ã«æã«åãã§ãã¯ãè¡ãããåãšã©ãŒãæ©æã«çºèŠããããšãåºæ¥ãŸãã
ãããã®ç¹åŸŽã«ãããKotlinã¯ãã¢ããªã±ãŒã·ã§ã³éçºããã·ã¹ãã éçºãã¹ã¯ãªããã£ã³ã°ãŸã§ãå¹ åºãé åã§äœ¿çšããããšãå¯èœã§ãã
2. Kotlinã®éçºç°å¢æ§ç¯
Kotlinèšèªã䜿ã£ãŠããã°ã©ã ãäœæããããã®æºåãšããŠããŸãæåã«éçºç°å¢ãæŽããããšããšãŠãéèŠã«ãªããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãã§ããã ãäžå¯§ã«ãKotlinã®éçºã«å¿ èŠãªããŒã«éã®ã€ã³ã¹ããŒã«ããããã®èšå®æ¹æ³ããããŠæåŸã«ã¯ãã¹ãæ¹æ³ãŸã§ã詳ãã説æããŸãã
2.1 å¿ èŠãªããŒã«
Kotlinãæžãéã«æãå¿ èŠãšãªãã®ã¯ãIntelliJ IDEAãšããéçºããŒã«ã§ããããã¯ãJavaãScalaãªã©ã®èšèªåãã®æ©èœãè±å¯ã«æèŒãããŠãããKotlinã®éçºã«ãæé©åãããŠããŸããããã«ãKotlinãéçºããããã®IDEãšããŠãå ¬åŒãæ¬ããŒã«ã®äœ¿çšãæšå¥šããŠããŸãããªããIntelliJ IDEAã¯ä»ã®éçºããŒã«ãšæ¯èŒããŠãããã®ã€ã³ã¹ããŒã«ãšèšå®ã容æã§çŽæçã§ãã
2.2 ã€ã³ã¹ããŒã«æ¹æ³ãšèšå®
IntelliJ IDEAã®ããŠã³ããŒãã¯å ¬åŒãµã€ãããè¡ããŸããå ¬åŒãµã€ãã«ã¢ã¯ã»ã¹ãããããDownloadããã¯ãªãã¯ããã䜿ãã®OSã«åãããããŒãžã§ã³ãéžã³ãŸãããCommunityããšãã£ã·ã§ã³ã¯ç¡æã§ãããKotlinã®éçºã«ã¯ãã¡ãã§ååã§ãããUltimateããšãã£ã·ã§ã³ã¯ææã§ãããè¿œå ã®æ©èœãšãµããŒããæäŸãããŸããããŠã³ããŒãããããããŠã³ããŒããããã¡ã€ã«ãéããæ瀺ã«åŸã£ãŠã€ã³ã¹ããŒã«ããŠãã ãããã€ã³ã¹ããŒã«ãå®äºããããIntelliJ IDEAãèµ·åãããConfigureãã®äžã«ãããPluginsããã¯ãªãã¯ããŸãã衚瀺ããããã©ã°ã€ã³ãªã¹ãã®äžãããKotlinããæ¢ããã€ã³ã¹ããŒã«ããŸãã以äžã§ãKotlinã®éçºç°å¢ã®ã€ã³ã¹ããŒã«ãšèšå®ã¯å®äºããŸããã
2.3 éçºç°å¢ã®ãã¹ã
æåŸã«ãèšå®ããéçºç°å¢ãæ£ããåäœããã確èªããŸãããããŸããIntelliJ IDEAãéãããCreate New Projectããã¯ãªãã¯ããŸãã次ã«ããKotlinããéžã³ããJVM | IDEAããéžæããŸãããããžã§ã¯ãåãšä¿åå ãèšå®ãããããFinishããã¯ãªãã¯ããŸããããã§æ°ããKotlinãããžã§ã¯ããäœæãããŸããsrcãã©ã«ãå ã«æ°ããKotlinãã¡ã€ã«ãäœæããç°¡åãªã³ãŒããæžããŠã¿ãŸããããäŸãã°ããfun main() {println(“Hello, Kotlin!”)ããšå ¥åããå®è¡ããŠã¿ãŠãã ããããHello, Kotlin!ããšè¡šç€ºãããã°ãéçºç°å¢ã®èšå®ã¯æåã§ãã
3. Kotlinã®åºæ¬ææ³
Kotlinã®åºæ¬ææ³ãåŠã¶ããã«ãå€æ°ãšå®æ°ã®å®çŸ©ãæŒç®åãšå¶åŸ¡æ§æãé¢æ°ã®å®çŸ©ãšåŒã³åºãããããŠã¯ã©ã¹ãšãªããžã§ã¯ãã®ç解ãå¿ èŠã§ãããããã®ç¥èãããã°ãç°¡åãªããã°ã©ã ãæžãããšãã§ããŸãã
3.1 å€æ°ãšå®æ°ã®å®çŸ©
Kotlinã§ã¯å€æ°ãå®çŸ©ããããã«varããŒã¯ãŒãããå®æ°ãå®çŸ©ããããã«valããŒã¯ãŒãã䜿çšããŸããå€æ°ã¯å€ã®æžãæããå¯èœã§ãããå®æ°ã¯äžåºŠèšå®ããå€ãå€æŽããããšã¯ã§ããŸããã
var variable = "This is variable" val constant = "This is constant" variable = "Variable can be changed" // constant = "Cannot change constant" ããã¯ãšã©ãŒã«ãªããŸã
ããã«ãããå€ãå€æŽãããªãããšãä¿èšŒãããå®æ°ã䜿ãããšã§ãé©åãªããŒã¿ç®¡çãè¡ããŸãã
3.2 æŒç®åãšå¶åŸ¡æ§æ
Kotlinã§ã¯äžè¬çãªããã°ã©ãã³ã°èšèªãšåæ§ã«ãç®è¡æŒç®å(+,-,*,/,%ãªã©)ãè«çæŒç®å(&&ã||)ã䜿çšã§ããŸãã
var num1 = 10 var num2 = 20 var sum = num1 + num2 // sum is 30
å¶åŸ¡æ§æã«ã¯æ¡ä»¶åå²ã®if-elseãwhenãç¹°ãè¿ãã®ããã®forãwhileããããŸãã
var age = 20 if (age >= 20) { println("You are an adult.") } else { println("You are not an adult.") }
ãã®ããã«ãå¶åŸ¡æ§æãé§äœ¿ããããšã§ãæ§ã ãªæ¡ä»¶ã§ç°ãªãåŠçãè¡ãããšãã§ããŸãã
3.3 é¢æ°ã®å®çŸ©ãšåŒã³åºã
é¢æ°ã¯ç¹å®ã®åŠçããŸãšãããã®ã§ãé¢æ°ã䜿ãããšã§ããã°ã©ã ã®åå©çšæ§ãšå¯èªæ§ããããããšãã§ããŸããKotlinã§ã¯funããŒã¯ãŒãã§é¢æ°ãå®çŸ©ããŸãã
fun add(num1: Int, num2: Int): Int { return num1 + num2 } var result = add(10, 20) // result is 30
ãã®é¢æ°addã¯ãäºã€ã®æŽæ°ãåãåãããããã足ããçµæãè¿ããŸãã
3.4 ã¯ã©ã¹ãšãªããžã§ã¯ã
Kotlinã¯ãªããžã§ã¯ãæåèšèªã§ãããã¯ã©ã¹ãšãªããžã§ã¯ããšããæŠå¿µãéèŠãªèŠçŽ ã§ããã¯ã©ã¹ã¯ãªããžã§ã¯ãã®èšèšå³ã®ãããªãã®ã§ããªããžã§ã¯ãã¯ãã®ã¯ã©ã¹ã«åºã¥ããŠå ·çŸåãããå®äœãæããŸãã
class Dog { fun bark() { println("Bow wow") } } var dog = Dog() dog.bark() // Output: Bow wow
ãã®ã¯ã©ã¹Dogã¯ãbarkãšããé¢æ°ããã€ç¬ãè¡šçŸããŸãããããŠDogã¯ã©ã¹ããdogãšãããªããžã§ã¯ããäœãåºããbarké¢æ°ãåŒã³åºããŠããŸãã
以äžãå€æ°ãšå®æ°ã®å®çŸ©ããã¯ã©ã¹ãšãªããžã§ã¯ããŸã§ãKotlinã®åºæ¬ææ³ãåŠã³ãŸãããããããç解ã§ããã°ãKotlinã䜿ã£ãããã°ã©ã ãäœæããåºç€ã身ã«ã€ãããšèšããŸãã
4. Kotlinã§ã®ããŒã¿æäœ
ããã°ã©ã ã¯åºæ¬çã«ããŒã¿ã®æäœãšãããéããåé¡è§£æ±ºãäž»ãªä»äºã§ããã€ãŸããç¹å®ã®èšèªãç¿åŸãããšããããšã¯ããã®èšèªãæäŸããããŒã¿æäœã®æ¹æ³ãšæè¡ãç解ãã䜿ãããªããããã«ãªãããšãå«ã¿ãŸããããã§ã¯ãKotlinã§ã®äž»èŠãªããŒã¿æäœæ¹æ³ã§ããã³ã¬ã¯ã·ã§ã³ã®æäœãšããã¡ã€ã«ã®èªã¿æžãã«ã€ããŠè§£èª¬ããŸãã
4.1 ã³ã¬ã¯ã·ã§ã³ã®æäœ
Kotlinã«ã¯Javaãšåæ§ã®ã³ã¬ã¯ã·ã§ã³ã®ã¯ã©ã¹ãçšæãããŠããŸããããããç解ããã°ãããŒã¿ã®äžèŠ§ãå¹ççã«ç®¡çããããšãã§ããŸãã代衚çãªã³ã¬ã¯ã·ã§ã³ã«ã¯ãListãSetãMapããããŸãã
Listã¯ãé åºãä¿æããããŒã¿ã®äžèŠ§ãè¡šããŸããå€ã®éè€ãèš±ãããŸããäŸãã°ãããã¯ã©ã¹ã®åŠçã®ååãæ ŒçŽããå Žåã«ã¯Listã䜿çšãããšè¯ãã§ãããããŸãSetã¯ãé åºãä¿æãããå€ã®éè€ãèš±ããªãããŒã¿ã®éåãè¡šããŸããç°ãªãçš®é¡ã®æç©ã®ãªã¹ãçãæã€éã«å©çšã§ããŸãã
Mapã¯ãããŒãšå€ãšã®é¢é£ä»ããè¡šãã³ã¬ã¯ã·ã§ã³ã§ããäŸãã°ãéœåžåãšãã®äººå£çãäžå¯Ÿäžã§å¯Ÿå¿ããå Žåã«å©çšããŸãã
ãããã®ã³ã¬ã¯ã·ã§ã³ã¯çæåŸãèŠçŽ ã®è¿œå ãåé€ãååŸãäœçœ®ã®ç¢ºèªçãè¡ãããšãã§ããŸãããŸããfilterãmapçã®é¢æ°ã䜿ã£ãŠããŒã¿ã®æäœãè¡ãããšãã§ããŸãããããã¯é¢æ°åããã°ã©ãã³ã°ç¹æã®æ©èœã§ãããŒã¿ã®å€æãéžæãè¡ãéã«æçšã§ãã
4.2 ãã¡ã€ã«ã®èªã¿æžã
ããã°ã©ãã³ã°ã§ã¯ãã¡ã€ã«ããã®ããŒã¿èªã¿èŸŒã¿ããã¡ã€ã«ãžã®ããŒã¿æžã蟌ã¿ãããè¡ãããŸããKotlinã§ã¯ãããã®æäœãæ±ãããã®ã©ã€ãã©ãªãè±å¯ã«çšæãããŠããŸãã
java.io.Fileã¯ã©ã¹ãå©çšããããšã§ããã¡ã€ã«ããã£ã¬ã¯ããªã®äœæãåé€ããªã¹ãã¢ãããªã©ããã¡ã€ã«ã·ã¹ãã ã«å¯Ÿããäžè¬çãªæäœãå¯èœã§ããããã«ãKotlinã§ã¯
ãŸããwriteText()ãappendText()ãªã©ã®é¢æ°ãå©çšããããšã§ããã¡ã€ã«ãžã®ããŒã¿ã®æžã蟌ã¿ã容æã«è¡ããŸãããããã®æ©èœãäžæã䜿ãããªãããšã§ãå¹ççã«ãã¡ã€ã«æäœãè¡ãããšãå¯èœã«ãªããŸãã
5. Kotlinã®ç¹ç°ãªæ©èœ
Kotlinã¯ããã®ç¹ç°ãªæ©èœã«ãããå€ãã®ããã°ã©ãããåãä¿¡é ŒãåŸãŠããŸãã空ã®åç §ãèš±ãããªãNullå®å šãé¢æ°åããã°ã©ãã³ã°ã®å¹ ãåºããã©ã ãåŒã»é«éé¢æ°ãã¯ã©ã¹ã®ã¡ãœãããæ¡åŒµãããšã¯ã¹ãã³ã·ã§ã³ãªã©ããããã®ç¹åŸŽçãªæ©èœãæãäžããŠã¿ãŸãããã
5.1 Nullå®å šãšã¯
Nullå®å šãšã¯ãå€æ°ãNullãä¿æããªãããã«èšèšãããæ©èœã®ããšãæããŸããNullåç §ãåå ã§çºçãããšã©ãŒïŒNullåç §ãšã©ãŒïŒã¯ãããã°ã©ãã³ã°ã®äžçã§ã¯éåžžã«äžè¬çãªãšã©ãŒã§ããããã¯Javaãªã©ã®ä»ã®èšèªã§ãåæ§ã§ãããKotlinã§ã¯ãã®åé¡ã«å¯ŸåŠãããããå€æ°ãNullãä¿æã§ããªãããã«èšèšãããŠããŸãã
Kotlinã§ã¯ååã®åŸãã«?ãã€ããããšã§ããã®åã®å€ãNullã«ãªãå¯èœæ§ãããããšã瀺ããŸããããã«ãããNullã蚱容ããå€æ°ããNullã§ãããããããªãå€æ°ã®åç §ãå®å šã«è¡ãããšãã§ããŸãã
5.2 ã©ã ãåŒãšé«éé¢æ°
ã©ã ãåŒã¯ãç¡åé¢æ°ãäœæããããé¢æ°ãå€æ°ã«ä»£å ¥ããããé¢æ°ã®åŒæ°ãšããŠæž¡ããããæ»ãå€ãšããŠè¿ãããããããã®èšæ³ã§ãããã®æ©èœã䜿ãã°ãããç°¡æœã§ç解ããããã³ãŒããæžãããšãå¯èœãšãªããŸãã
Kotlinã§ã¯ãé¢æ°ãåŒæ°ãšããŠåãåãé¢æ°ããé¢æ°ãè¿ãå€ãšããŠè¿ãé¢æ°ãé«éé¢æ°ãšåŒã³ãŸããé«éé¢æ°ã¯ã©ã ãåŒãšäžç·ã«çšããããããšãå€ããé«éé¢æ°ãšã©ã ãåŒãçµã¿åãããããšã§ãç°¡æœã§å¹ççãªã³ãŒãã£ã³ã°ãå¯èœãšãªããŸãã
5.3 ãšã¯ã¹ãã³ã·ã§ã³
ãšã¯ã¹ãã³ã·ã§ã³ãšã¯ãæ¢åã®ã¯ã©ã¹ã«æ°ããæ§è³ªãå ããæ©èœã®ããšãæããŸããKotlinã§ã¯ãæ¢ã«ååšããã¯ã©ã¹ã«æ°ããªã¡ãœãããè¿œå ããããšãã§ããŸããããã«ãããå¿ èŠã«å¿ããŠæ¢åã®ã¯ã©ã¹ãæ¡åŒµããå ·äœçãªåé¡ã解決ããã®ã«é©ããæ©èœãèšããããšãå¯èœãšãªããŸãã
ãšã¯ã¹ãã³ã·ã§ã³ã¯ãããèªäœãæ°ããªã¯ã©ã¹ãçãããã§ã¯ãªããããå ã®ã¯ã©ã¹ã®åäœãå€æŽããããšã¯ãããŸãããã€ãŸãããšã¯ã¹ãã³ã·ã§ã³ãçšããŠè¿œå ãããæ©èœã¯ããã®ãšã¯ã¹ãã³ã·ã§ã³ãé©çšãããŠããç¯å²å ã§ã®ã¿å©çšã§ãããšããããã§ãã
6. Kotlinã§ã®ãšã©ãŒãã³ããªã³ã°
Kotlinã«ãããŠããã°ã©ã å®è¡äžã«äºæããªãäºæ ãåé¡ãããªãã¡äŸå€ãçºçããå Žåã§ããé©åã«å¯Ÿå¿ããããã®ãšã©ãŒãã³ããªã³ã°æ¹æ³ã«ã€ããŠåŠã³ãŸãããã
6.1 äŸå€ã®çš®é¡
Kotlinã§ã¯ãå®è¡æã«äºæãã¬äºæ ãèµ·ãã£ãéã«çºçããå®è¡æäŸå€ãšãã³ã³ãã€ã©ãæ€åºå¯èœãªã³ãŒãäžã®åé¡ããçããæ€æ»äŸå€ã®äºçš®é¡ããããŸãã
ãããããNullPointerExceptionãNumberFormatExceptionãªã©ã®å®è¡æäŸå€ãFileNotFoundExceptionãIOExceptionãªã©ã®æ€æ»äŸå€ãšãã£ãå ·äœçãªäŸããããŸãã
6.2 try-catchæ§æ
Kotlinã§äŸå€ãææããŠé©åã«åŠçãè¡ãããã«ã¯ãtry-catchæ§æãå©çšããŸããtryãããã¯ã§äŸå€ãçºçããå¯èœæ§ã®ããã³ãŒããèšè¿°ãããã®åŸã®catchãããã¯ã§å ·äœçãªäŸå€ãææããŠåŠçãè¡ã圢ã«ãªããŸãã
try { //äŸå€ãçºçããå¯èœæ§ã®ããã³ãŒã } catch (e: Exception) { //äŸå€ãçºçããéã®åŠç }
catchãããã¯ã¯è€æ°çœ®ãããšãå¯èœã§ãäŸå€ã®åããšã«ç°ãªãåŠçãããããšãå¯èœã§ãããŸããfinallyãããã¯ã䜿çšããããšã§ãäŸå€ã®çºçæç¡ã«é¢ãããæçµçã«å®è¡ãããåŠçãèšè¿°ããããšãã§ããŸãã
6.3 äŸå€ã®èªäœ
Kotlinã§ã¯ãç¹å®ã®ç¶æ³äžã§é©åãªãšã©ãŒã¡ãã»ãŒãžãåŠçãè¡ãããå Žåãèªåã§äŸå€ãå®çŸ©ããããšãå¯èœã§ããããã¯ãExceptionã¯ã©ã¹ãŸãã¯ãã®ãµãã¯ã©ã¹ãç¶æ¿ããæ°ããªã¯ã©ã¹ãäœæããããšã§å®çŸããŸãã
class CustomException(message: String): Exception(message)
äžèšã®ããã«èªäœã®äŸå€ã¯ã©ã¹ãäœæããã°ãå¿ èŠãªç¶æ³ã§ãããthrowããŒã¯ãŒãã§æããŠå¯Ÿå¿ããããšãå¯èœãšãªããŸãã
é©åãªãšã©ãŒãã³ããªã³ã°ãè¡ãããšã§ãããã°ã©ã ã®ããã¹ãæ§ãåäžããã人éãç解ãããããšã©ãŒã¡ãã»ãŒãžãåºåããããšãã§ããŸãã
7. å®è·µæŒç¿ïŒKotlinã§ã®ãããžã§ã¯ãäœæ
ãããŸã§Kotlinã®åºæ¬çãªææ³ãç¹åŸŽãããŒã¿æäœæ¹æ³ãªã©ãåŠãã§ããŸãããããããã掻çšããŠå®éã«ãããžã§ã¯ããäœæããçµéšã¯ãšãŠãéèŠã§ããå®éã«æãåããããšã§åããŠç解ãæ·±ãŸããã®ã§ããããã§ã¯ããŸãæåã«ãããžã§ã¯ãã®èšå®ããå§ããŸãããã
7.1 ãããžã§ã¯ãã®èšå®
ãããžã§ã¯ããäœæããããã«ã¯ãé©åãªèšå®ãå¿ èŠã§ãããŸããæ°èŠãããžã§ã¯ããäœæããŸããããã§ã¯ãKotlinã®éçºã«å¿ èŠãªIDEïŒçµ±åéçºç°å¢ïŒãšããŠå©çšãããããšã®å€ãIntelliJ IDEAãçšããŸããæ°èŠãããžã§ã¯ãã®äœæã§ã¯ããããžã§ã¯ãã®ååãä¿åå ã䜿çšããKotlinã®ããŒãžã§ã³ãªã©ãèšå®ããŸããé©åãªèšå®ãè¡ãããšã§ãåŸã®éçºãã¹ã ãŒãºã«é²ãããã«ãªããŸãã
7.2 ã¢ããªã±ãŒã·ã§ã³ã®éçº
次ã«ãã¢ããªã±ãŒã·ã§ã³ã®éçºã«å ¥ããŸãããŸãã¯ãç°¡åãªHello Worldããã°ã©ã ããå§ããŠã¿ãŸããããæ°ããäœæãããããžã§ã¯ãå ã«”main.kt”ãšããååã®Kotlinãã¡ã€ã«ãäœæãããã®äžã«ããã°ã©ã ãèšè¿°ããŸãã”Hello, World!”ãšè¡šç€ºããããã«ã¯ã以äžã®ãããªã³ãŒããèšè¿°ããŸãã
fun main() { println("Hello, World!") }
ãã®ã³ãŒããå®è¡ãããšãã³ã³ãœãŒã«ã«”Hello, World!”ãšè¡šç€ºãããŸããããããããªããäœæããæåã®Kotlinã¢ããªã±ãŒã·ã§ã³ã§ãã
7.3 ãã¹ãã®å®è¡
æåŸã«ãäœæããã¢ããªã±ãŒã·ã§ã³ã®åäœã確èªããããã«ãã¹ããå®è¡ããŸããKotlinã§ã¯ãŠããããã¹ããã¬ãŒã ã¯ãŒã¯ãšããŠJunitãçšããããŸãããã¹ãã±ãŒã¹ãäœæããäœæããã¢ããªã±ãŒã·ã§ã³ãæ£ããåäœããããšã確èªããŸãããããã¹ããè¡ãããšã§ãã³ãŒããæå³ããéãã«åäœããããšãä¿èšŒããå質ãç¶æããããšãã§ããŸãã
以äžã§ãäžéãã®ãããžã§ã¯ãäœæã®æµããåŠãã ããšã«ãªããŸããæåã¯é£ããæãããããããŸããããäœåºŠãæãåããããšã§èªç¶ãšç解ãæ·±ãŸããã¹ã ãŒãºã«ã³ãŒããæžããããã«ãªãã§ãããããããããããã²å€ãã®ãããžã§ã¯ããäœæããŠãKotlinã®çµéšãç©ãã§ãã ããã
8. KotlinãåŠã¶ã³ã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãKotlinã®åŠç¿ã«ãããéèŠãªãã€ã³ãã3ã€è§£èª¬ããŸããããã¯ãåŠç¿ãªãœãŒã¹ã®æŽ»çšããã³ãºãªã³åŠç¿ã®éèŠæ§ããããŠå®æçãªã¹ãã«ãã§ãã¯ã§ãã
8.1 åŠç¿ãªãœãŒã¹ã®æŽ»çš
Kotlinã®åŠç¿ã«ã¯ãã€ã³ã¿ãŒãããäžã§æã«å ¥ãèšå€§ãªãªãœãŒã¹ã掻çšããããšãæå¹ã§ããå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ã¯ãã¡ããã®ããšãTutorialsPointãGeeksforGeeksãªã©ã®æè²ãµã€ããStack OverflowãGitHubãªã©ã®ã³ãã¥ããã£ã«åå ããããšã§ãèªåäžäººã§ã¯è§£æ±ºãã«ããåé¡ãå ±æãã解決çãèŠã€ããããŸãã
ãŸããUdemyãCourseraãªã©ã®ãªã³ã©ã€ã³åŠç¿ãã©ãããã©ãŒã ã«ã¯ãKotlinã®ã³ãŒã¹ãæ°å€ããããŸããåå¿è åãããäžçŽè åããŸã§ãèªåã®ã¹ãã«ã¬ãã«ã«åãããŠéžæã§ããŸãã
8.2 ãã³ãºãªã³åŠç¿ã®éèŠæ§
çè«ãåŠã¶ã ãã§ã¯ãªããå®éã«æãåãããŠKotlinãæžãããšããç解ãæ·±ããäžã§ãšãŠãéèŠã§ãããã®ã¢ãããŒãããã³ãºãªã³åŠç¿ãšèšããŸããäŸãã°ãèªåãåŠãã ææ³ã䜿ã£ãŠç°¡åãªã¢ããªã±ãŒã·ã§ã³ãäœããªã©ãå®éã«äœããäœããªããKotlinã®æ©èœãç解ããŸãããã
ãŸããèªåãäœã£ãã³ãŒãã人ã«èŠããŠãã£ãŒãããã¯ããããããšãæå¹ã§ããããã¯ãèªåã®ã³ãŒãã£ã³ã°ã®åŒ±ç¹ãèŠã€ããã ãã§ãªããä»ã®äººãã©ã®ããã«åé¡ã解決ããŠããããåŠã¶æ©äŒã«ããªããŸãã
8.3 å®æçãªã¹ãã«ãã§ãã¯
åŠç¿ããã»ã¹ã®äžã§éèŠãšãªãã®ããèªåã®ã¹ãã«ã¬ãã«ãå®æçã«ãã§ãã¯ããããšã§ããããã«ã¯LeetCodeãHackerRankãªã©ã®ãªã³ã©ã€ã³ãã©ãããã©ãŒã ã圹ç«ã¡ãŸãã
ãããã®ãã©ãããã©ãŒã ã§ã¯ãèªåã®Kotlinã¹ãã«ãè©Šãæ§ã ãªåé¡ãæäŸãããŠããŸããããã«ãããèªåãã©ã®çšåºŠKotlinãç解ããŠããããã©ã®éšåã匱ç¹ã§ããããæ確ã«ææ¡ã§ããŸãããããŠãããã«åºã¥ããŠæ¬¡ã®åŠç¿èšç»ãç«ãŠãããšãã§ããŸãã
ãããã®ãã€ã³ãã念é ã«çœ®ããªããKotlinã®åŠç¿ãé²ããããšã§ãããå¹æçã«ã¹ãã«ã¢ããããããšãæåŸ ã§ããŸãã
9.ãŸãšã
Kotlinã¯å ç¢æ§ãšçç£æ§ãäž¡ç«ãããæ°äžä»£ã®ããã°ã©ãã³ã°èšèªã§ããããã®ç¬èªæ§ãšå®çšæ§ãé«ãè©äŸ¡ãããŠããŸããæ¬èšäºã§ã¯ãKotlinã®åºæ¬æŠå¿µãããéçºç°å¢æ§ç¯ãåºæ¬ææ³ãããŒã¿æäœãç¹ç°ãªæ©èœããšã©ãŒãã³ããªã³ã°ããããŠå®è·µæŒç¿ãŸã§ãåŠãã§ããŸãããããããã®æ®µéã§æ°ããªç¥èãšæè¡ãåŸãããšãã§ããã¯ãã§ãã
ããã°ã©ãã³ã°ã®åŠç¿ã¯äžåºŠã«å šãŠãç解ããããšã¯é£ããã段éãèžãã§å°ããã€èº«ã«ã€ããç¹°ãè¿ãåŠç¿ãç©ã¿éããããšãéèŠã§ããKotlinãåæ§ã«ã现ããéšåãæ·±ãç解ããå®éã«æãåãããŠäœéšããããšã§è ã«èœãšãããšãã§ããèšèªã§ãã
æ¬èšäºãéããŠãããªãã®Kotlinã®åŠç¿ãå°ãã§ãé²ããã£ããã«ãªãã°å¹žãã§ããããèºãããšããã£ããšããŠããã¯ããã®äžæ©ãèžã¿åºãããšã®å€§åããå¿ãããèªåã®ããŒã¹ã§åŠãã§ãã ããã
ä»åŸãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãéçºããéã«Kotlinã®åãåããæãããã§ãããããããŠããã®æKotlinãæå¹ã«æ©èœããããªããæ¯ããŠãããããšã§ããããããããã®åŠç¿ãšéçºããããªãã«ãšã£ãŠææ矩ãªãã®ãšãªãããšãé¡ã£ãŠããŸãã