Π Π°Π·Π½ΠΎΠ΅

Kotlin язык программирования для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: Kotlin для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… / Π₯Π°Π±Ρ€

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΡΠ½ΠΎΠ²Ρ‹ Kotlin. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ β€” Fandroid.info

ΠžΡΠ½ΠΎΠ²Ρ‹ языка ΠšΠΎΡ‚Π»ΠΈΠ½

Π―Π·Ρ‹ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡβ€‰β€”β€‰ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½Π΅ΠΉΡˆΠ°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ соврСмСнной Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ. Π—Π° послСдниС 30-40 Π»Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€ΠΎΡΠ»ΠΈΡΡŒ Π΄ΠΎ нСвСроятных ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ², ΠΈ сСйчас ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ Π² состоянии ΠΎΠ±ΠΎΠ·Ρ€Π΅Ρ‚ΡŒ эту ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ΅. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выросли с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн строк Π΄ΠΎ дСсятков ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² строк, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ сСйчас Π² самых Ρ€Π°Π·Π½Ρ‹Ρ… областях ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½Π° самых Ρ€Π°Π·Π½Ρ‹Ρ…Β ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, часто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ desktop-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ;
  • web-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСлятся, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½Π°Β ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽΒ Ρ‡Π°ΡΡ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΒ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽΡΡ Π½Π° сСрвСрС;
  • ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния для ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ΠΎΠ², смартфонов ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств;
  • систСмныС программы, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы;
  • встраиваСмыС программы, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ встраиваСмых систСм управлСния (примСняСмыС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² транспортС, Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ‚Π°Ρ…, станках с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠ²).

Π―Π·Ρ‹ΠΊΠΈ программирования

Для написания Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сСйчас ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ языки программирования. НапримСр, Π² сфСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ основными ΡΠ²Π»ΡΡŽΡ‚ΡΡ языки Java ΠΈ Kotlin (устройства ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android), Π° Ρ‚Π°ΠΊΠΆΠ΅ Swift (ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ устройства ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ iOS).

На нашСм сайтС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android Π½Π° языкС Kotlin

БистСмныС программы, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° языках C ΠΈΠ»ΠΈ C++. Π­Ρ‚ΠΈ ΠΆΠ΅ языки Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя использовались ΠΈ для создания встраиваСмых программ, Π½ΠΎ Π² послСдниС Π³ΠΎΠ΄Ρ‹ Π² этой области Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ язык Java. Для написания web-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ JavaScript, Π° Π² простых случаях — язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ страниц HTML. Web-сСрвСры ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ Java (Π² слоТных случаях), Π° Ρ‚Π°ΠΊΠΆΠ΅ Python ΠΈ PHP (Π² Π±ΠΎΠ»Π΅Π΅ простых). НаконСц, простыС desktop-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сСйчас ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны Π½Π° самых Ρ€Π°Π·Π½Ρ‹Ρ… языках, ΠΈ Π²Ρ‹Π±ΠΎΡ€ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ зависит ΠΎΡ‚ слоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, области Π΅Ρ‘ использования, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ слСдуСт Π½Π°Π·Π²Π°Ρ‚ΡŒ языки Java, C++, C#, Python, Visual Basic, Ruby, Swift.

Π’ ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ смыслС самым ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ самым распространённым языком программирования Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ слСдуСт ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ язык Java. Java Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС — нС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ язык, Π½ΠΎ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠ΄ самыми Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами ΠΈ Π½Π° Ρ€Π°Π·Π½ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π΅. Вакая ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ обСспСчиваСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Javaβ€‰β€”β€‰ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ систСмной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Java Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ систСмы. Java Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΎΠ³Π°Ρ‚Π΅ΠΉΡˆΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Kotlin

Однако для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… язык Java являСтся нСсколько многословным ΠΈ слоТным. Π­Ρ‚ΠΎ пособиС посвящСно Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ языку программирования, спутнику Java — языку ΠšΠΎΡ‚Π»ΠΈΠ½. ΠšΠΎΡ‚Π»ΠΈΠ½β€‰β€”β€‰ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ, Π»Ρ‘Π³ΠΊΠΈΠΉ для изучСния язык программирования, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JVM ΠΈ Android Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ, просто ΠΈ с мСньшим количСством ошибок ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с языком Java. ΠšΠΎΡ‚Π»ΠΈΠ½ ΠΈ Javaβ€‰β€”β€‰ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽΒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΏΠ΅Ρ€Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ языки, поэтому ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ частично написана Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅, частично Π½Π° Java. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Java-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ сотни тысяч программистов, основная ниша Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡβ€‰β€”β€‰ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Android ΠΈ, Π² нСсколько мСньшСй стСпСни, web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

Π’ Ρ…ΠΎΠ΄Π΅ изучСния ΠšΠΎΡ‚Π»ΠΈΠ½Π° ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ элСмСнты стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Java, Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ упростит ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ПослС освоСния основ языка Kotlin Π²Ρ‹ смоТСтС ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС ΠšΠΎΡ‚Π»ΠΈΠ½.

Π’Π°ΠΊΠΆΠ΅ Π½Π° нашСм сайтС Π΅ΡΡ‚ΡŒ ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ курсы ΠΏΠΎ созданию Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π°Π½Π΄Ρ€ΠΎΠΈΠ΄-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС ΠšΠΎΡ‚Π»ΠΈΠ½

Π§Ρ‚ΠΎ трСбуСтся для Π½Π°Ρ‡Π°Π»Π°

Π‘Π°ΠΌΡ‹ΠΉ простой способ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅β€‰β€”β€‰Π·Π°ΠΉΡ‚ΠΈ Π½Π° сайт http://try.kotlinlang.org. Π˜ΠΌΠ΅ΡŽΡ‰Π°ΡΡΡ Ρ‚Π°ΠΌ «пСсочница» позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прямо Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ свои ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ курсы.

ΠœΠ°ΡΡˆΡ‚Π°Π±Ρ‹ пСсочницы, ΠΎΠ΄Π½Π°ΠΊΠΎ, достаточны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС (IDE). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Java Π² любом случаС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° JDK, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с сайта ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ врСмя Π²Π°ΠΌ потрСбуСтся Java Platform, Standard Edition, рСкомСндуСтся 8-я Π΅Ρ‘ рСдакция, Π½Π° ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒ 2018 Π³ΠΎΠ΄Π° послСдняя Π΅Ρ‘ вСрсия — Java SE 8u181.

Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ IntelliJ IDEA

Π’ качСствС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ IntelliJ IDEA Community Edition, Π΅Ρ‘ слСдуСт Π±Ρ€Π°Ρ‚ΡŒΒ ΠΎΡ‚ΡΡŽΠ΄Π°. Community Edition являСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ бСсплатной, базовая вСрсия обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ программирования Π½Π° Java, Kotlin, Scala, Groovy, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ систСм контроля вСрсий Git, Mercurial, SVN, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с систСмами сборки Maven ΠΈ Gradle.

Для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ IDEA с систСмой контроля вСрсий Git Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Git. Π’Π°ΠΊΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² сущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ; Β«Ρ€ΠΎΠ΄Π½ΠΎΠΉΒ» Git ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒΒ Π·Π΄Π΅ΡΡŒ. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π² IDEA ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ собствСнный Git-ΠΏΠ»Π°Π³ΠΈΠ½, ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ графичСский интСрфСйс, поэтому ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Git с графичСским интСрфСйсом (GUI Clients) Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π’ Ρ…ΠΎΠ΄Π΅ обучСния ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Β«ΠšΠΎΡ‚Π»ΠΈΠ½ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования», содСрТащий тСкст Π΄Π°Π½Π½ΠΎΠ³ΠΎ пособия ΠΈ ΠΎΠΊΠΎΠ»ΠΎ сотни Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π½Π° языкС Kotlin. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° доступСн ΠΏΠΎ адрСсу https://github.com/Kotlin-Polytech/KotlinAsFirst2018Β Π½Π° сайтС GitHub, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся спСциализированным Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² ΠΈ основан Π½Π° систСмС контроля вСрсий Git. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

  1. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π°Β https://github.com/Β (Π² случаС, Ссли Ρƒ Вас Π΅Ρ‰Π΅ Π½Π΅Ρ‚ GitHub Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°). Π”Π°Π»Π΅Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π’Π°ΠΌΠΈ имя Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ <USERNAME>.
  2. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ копию рСпозитория проСкта — форк. Для этого достаточно Π·Π°ΠΉΡ‚ΠΈ Π½Π° страницу ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Β https://github.com/Kotlin-Polytech/KotlinAsFirst2018Β ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒΒ ForkΒ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ страницы. ПослС этого Π’Π°ΡˆΠ° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ копия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° станСт доступна ΠΏΠΎ адрСсу https://github.com/<USERNAME>/KotlinAsFirst2018, ΠΈ всю Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ с Π’Π°ΡˆΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ.
  3. Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² IntelliJ IDEA слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΡƒΒ Check out from Version ControlΒ β†’Β GitHubΒ ΠΈΠ· ΠΎΠΊΠ½Π°Β Welcome to Intellij IDEAΒ (ΠΈΠ»ΠΈΒ FileΒ β†’Β NewΒ β†’Β Project from Version ControlΒ β†’Β GitHubΒ ΠΈΠ· ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°), Π² появившСмся ΠΎΠΊΠ½Π΅ ввСсти Git Repository URLΒ https://github.com/<USERNAME>/KotlinAsFirst2018Β ΠΈ мСсто Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ скачан ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (Parent Directory).
  4. Π”Π°Π»Π΅Π΅ слСдуйтС инструкциям срСды для настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈΒ Π·Π΄Π΅ΡΡŒ.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ содСрТит Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹Π΅ Π½Π° Π΄Π΅Π²ΡΡ‚ΡŒ ΡƒΡ€ΠΎΠΊΠΎΠ² (lesson). ВСксты Π·Π°Π΄Π°Ρ‡ доступны Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΊΠ½ΠΎΒ ProjectΒ Π² IntelliJ IDEA (открываСтся ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ клавиш Alt + 1). Π’ ΠΏΠ°ΠΏΠΊΠ°Ρ…Β src/lessonX, Π³Π΄Π΅ X — номСр ΡƒΡ€ΠΎΠΊΠ°, находятся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡƒΡ€ΠΎΠΊΡƒ, тСксты Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для написания Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ ΠΏΠ°ΠΏΠΊΠ°Ρ… test/lessonX находятся тСстовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ Π·Π°Π΄Π°Ρ‡Π°ΠΌ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΈ тСстах см. Ρ€Π°Π·Π΄Π΅Π» 1 этого пособия.

Бписок ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΏΠΎ основам ΠšΠΎΡ‚Π»ΠΈΠ½

Вопросы

Π’ Ρ…ΠΎΠ΄Π΅ изучСния Π½ΠΎΠ²ΠΎΠ³ΠΎ языка Ρƒ вас, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ вопросы, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΈΡ… Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ. Π£ вас Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности:

  • ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ «часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы» Π΄Π°Π»Π΅Π΅ ΠΏΠΎ тСксту
  • ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° вопрос с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ поисковой систСмы Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅
  • ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠšΠΎΡ‚Π»ΠΈΠ½Π΅ Π² Π΅Π³ΠΎΒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
  • русскоязычная докумСнтация ΠΏΠΎ ΠšΠΎΡ‚Π»ΠΈΠ½Ρƒ здСсь
  • Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π°ΠΌ вопрос Π²Β Kotlin SlackΒ (ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ моТно здСсь) Π² ΠΊΠ°Π½Π°Π»Π΅Β russian-kotlinasfirst
  • Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡΒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ рСсурсами для общСния

Kotlin Slack — это систСма общСния, созданная ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для программистов Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅. БистСма состоит ΠΈΠ· мноТСства ΠΊΠ°Π½Π°Π»ΠΎΠ², посвящённых Ρ€Π°Π·Π½Ρ‹ΠΌ аспСктам программирования Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅β€‰β€”β€‰Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ΄Ρ‘Ρ‚ Π½Π° английском языкС. ΠΠ°ΡˆΠ΅ΠΌΡƒ курсу посвящён ΠΊΠ°Π½Π°Π» russian-kotlinasfirst, ΠΈ Ρ‚Π°ΠΌ Π²Ρ‹ смоТСтС Π·Π°Π΄Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ вопросы ΠΏΠΎ этому курсу Π½Π° русском языкС. Π’ качСствС Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² имССтся general — канал с ΠΎΠ±Ρ‰ΠΈΠΌΠΈ обсуТдСниями, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠšΠΎΡ‚Π»ΠΈΠ½Π°, ΠΈ russian — общий ΠΊΠ°Π½Π°Π» для русскоязычных ΠšΠΎΡ‚Π»ΠΈΠ½-программистов.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (F.A.Q.)

  • Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .kt ΠΈΠ· ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Simple.kt) Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС Π½Π°Π΄ Π½ΠΈΠΌΒ Project SDK is not defined?

НаТмитС Π½Π° ссылку Setup SDKΒ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части сообщСния. Π’Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ JDK 1.8 для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π² появившСмся ΠΎΠΊΠ½Π΅. Если список JDK Π² ΠΎΠΊΠ½Π΅ пуст ΠΈΠ»ΠΈ Π½Π΅ содСрТит JDK 1.8, слСдуСт Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒΒ Configure, Π·Π°Ρ‚Π΅ΠΌ Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ плюс Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ ΠΈ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π½Π° Π’Π°ΡˆΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ JDK 1.8 Π² Intellij IDEA. Если Π’Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ JDK, это слСдуСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скачав Π΅Ρ‘ с сайта Oracle.

  • Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли отсутствуСт Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ mainΒ ΠΈ тСстовых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ?

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Maven Projects Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΎΠΊΠ½Π° IDEA (Ссли Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΌ Ρ‚Π°ΠΊΠΎΠΉ надписи, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½ΡŽβ€‰β€”β€‰View > Tool Windows > Maven Projects) ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π² Π½Ρ‘ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π²ΡƒΡ… стрСлок Π² ΠΊΡ€ΡƒΠ³Π΅. Π”ΠΎΠΆΠ΄ΠΈΡ‚Π΅ΡΡŒ окончания импортирования Maven-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π½Π°Π±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Π·Π° надписями Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° IDEA), послС Ρ‡Π΅Π³ΠΎ Π·Π΅Π»Ρ‘Π½Ρ‹Π΅ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ отсутствиС надписи Project SDK is not definedΠ² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° (см. вопрос Π²Ρ‹ΡˆΠ΅).

Если Π²Π°ΠΌ Π½Π΅ удаётся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Maven Projects, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Intellij IDEA ΠΈ Π²ΠΎΠΉΡ‚ΠΈ Π² Π½Π΅Ρ‘ Π·Π°Π½ΠΎΠ²ΠΎ.

Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ курсы:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΎΠ½Π»Π°ΠΉΠ½-курса Β«ΠšΠΎΡ‚Π»ΠΈΠ½ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык программирования» Π² соотвСтствии с Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ

20 ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… рСсурсов для изучСния Kotlin

Данная ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² связана с ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΆΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Kotlin. Π˜Π·ΡƒΡ‡ΠΈΠ² Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ захочСтся ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Kotlin большС!

Kotlin – это соврСмСнный язык программирования, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Java (JVM). Π”Π°Π½Π½Ρ‹ΠΉ язык ΠΈΠΌΠ΅Π΅Ρ‚ простой для восприятия синтаксис ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ всСх ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Java-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π’ 2017 Π³ΠΎΠ΄Ρƒ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Google I/O Android-сообщСство анонсировало, Ρ‡Ρ‚ΠΎ Kotlin станСт ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ языком программирования для Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Kotlin ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных языков Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ.

ΠœΡ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π»ΠΈ список Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…, Π½Π° наш взгляд, рСсурсов для изучСния Kotlin, доступныС Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Π²Π°ΠΌ знакомства с Kotlin. Β ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ список Π½Π΅ ΠΏΠΎΠΏΠ°Π» Π½Π΅ ΠΎΠ΄ΠΈΠ½ рСсурс, ΠΈ Π½Π΅ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΈΠ³Π° Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ, всС рСсурсы ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ списка Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатныС.

Β 

Β 

Β 

Β 

Β 

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° – это ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ мСсто для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Kotlin. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Бсылки Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, которая ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС основныС Ρ„ΠΈΡ‡ΠΈ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка. Π Π°Π·Π΄Π΅Π» Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ практичСскиС ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ Π³Π°ΠΉΠ΄Ρ‹ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ срСду ΠΈ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с компилятором.

Π’Π°ΠΊΠΆΠ΅ сайт содСрТит Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Kotlin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π²Π°ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌ языком. Kotlin-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ содСрТит Π² сСбС мноТСство ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ курс Koan — бСзусловно, Π»ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с синтаксисом.

Данная ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠ°, состоящая ΠΈΠ· 11 Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ², ΠΎΡ‚ Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Juan Ignacio Saravia. Π’ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π°Ρ… ΠΎΠ½ задСйствуСт Kotlin для создания ΠΊΠ»ΠΎΠ½Π° прилоТСния Reddit. Π’ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ число Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², начиная ΠΎΡ‚ настройки Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ пространства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API ΠΈ заканчивая unit-тСстами. Код Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° доступСн Π½Π° Π΅Π³ΠΎ GitHub Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π‘Π»ΠΎΠ³ Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Антонио Π›Π΅ΠΉΠ²Ρ‹ посвящён всСму Ρ‡Ρ‚ΠΎ связано с Kotlin. Π—Π° счСт СТСнСдСльного обновлСния своСго Π±Π»ΠΎΠ³Π° Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π°ΠΌΠΈΠΈ ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ высокого уровня, читая ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΠΆΠ΅ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Kotlin ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ для сСбя Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π½ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для построСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Google размСстил пост, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ анонса ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Kotlin заслуТиваСт мСсто Π² экосистСмС Android. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассказываСтся ΠΎΠ± ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΡ… Π² ситанксисС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ привнСс Kotlin.

Dariusz BaciΕ„ski создал Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° GitHub, содСрТащий ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Kotlin. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, написанныС Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π°ΠΊΠΈΠ΅ языки, ΠΊΠ°ΠΊ: Java, Swift, JavaScript ΠΈ PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли Ρƒ вас Π·Π° ΠΏΠ»Π΅Ρ‡Π°ΠΌΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… языков программирования, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ.

НСбольшая ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°, содСрТащая Π² сСбС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ ΠΈ «синтаксичСский сахар» Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Kotlin. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с классами, Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ списками, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ классичСской Π·Π°Π΄Π°Ρ‡ΠΈ программирования ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ числС Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠ³ ΠΎΠ± языкС программирования Kotlin, ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ JetBrains. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ всС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ новости ΠΈ обновлСния, связанныС с Kotlin. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹, совСты ΠΈ ΡΡ‚Π°Ρ‚ΡŒΠΈ связанныС с Π΄Π°Π½Π½Ρ‹ΠΌ языком программирования.

ПолСзная ΡΡ‚Π°Ρ‚ΡŒΡ ΠΈΠ· Π±Π»ΠΎΠ³Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Google Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Android Studio для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Kotlin, ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .java Π² Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .kt ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ язык Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’Π°ΠΊΠΆΠ΅ здСсь ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ сравнСниС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π° Π½Π° Java ΠΈ Kotlin ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Android API.

ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ тСсты Π½Π° Android-прилоТСниях с использованиСм Kotlin. Автор ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π» ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, объясняя различия ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ доступных тСстов, ΠΊΠΎΠ³Π΄Π° ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ здСсь.

Β 

Β 

Β 

Β 

Β 

ЛСкция с ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Google I/O 2017, посвящСнная ввСдСнию Π² Kotlin для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ с Π½ΠΈΠΌ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ. ЛСкция Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс. ΠžΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ΡΡ практичСски вся Π±Π°Π·Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΡ€ΡƒΡ‚Ρ‹Π΅ возмоТности.

Вторая лСкция ΠΎ Kotlin с ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Google I/O 2017. Данная лСкция ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ слоТныС Ρ‚Π΅ΠΌΡ‹ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ: ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования, Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹. Π’Π°ΠΊΠΆΠ΅ проливаСтся свСт Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Kotlin для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π° ΠΈ с ΠΊΠ°ΠΊΠΈΠΌΠΈ трудностями ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ мСсто.

Π­Ρ‚ΠΎ бСсплатный курс ΠΏΠΎ Kotlin для Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя всС основы, начиная ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, условий, Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ заканчивая функциями. По ΠΌΠ΅Ρ€Π΅ прохоТдСния курса Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π±ΠΎΠ»Π΅Π΅ слоТным Ρ‚Π΅ΠΌΠ°ΠΌ Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ лямбда Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Данная лСкция с ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ GOTO 2016 состоит ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±Π·ΠΎΡ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй языка, рассматриваСмых Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ Kotlin взаимодСйствуСт с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ инструмСнтами, стандартного Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ пространства Android.

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ 8-ΠΌΠΈΠ½ΡƒΡ‚Π½Ρ‹ΠΉ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ основныС возмоТности Kotlin Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ: сокращСнноС объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, лямбда-выраТСния, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ Ρ‚.ΠΏ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Kotlin, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ язык ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ экосистСму Android ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΌ нСсколько ΠΊΡ€ΡƒΡ‚Ρ‹Ρ… способов, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ Kotlin Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Β 

Β 

Β 

Β 

Β 

ПолСзная ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°, содСрТащая нСбольшиС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ быстро Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ ΠΎΠ±Ρ‰ΠΈΠΌ Java ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ, функциям ΠΈ объявлСниям, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° Kotlin.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ для IntelliJ IDE ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Kotlin (koans курс) Π² ΠΎΡ„Π»Π°ΠΉΠ½ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Kotlin ΡƒΠΆΠ΅ Π½Π° протяТСнии 5 Π»Π΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ содСрТит всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ язык, Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько способов для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ»ΠΈ работая Π½Π°Π΄ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ быстро Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ своС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство для Kotlin ΠΈ быстро произвСсти Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ список рСсурсов, посвящСнных Kotlin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки, ΠΊΠ½ΠΈΠ³ΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠΈ. Π”Π°Π½Π½Ρ‹ΠΉ список Ρ…ΠΎΡ€ΠΎΡˆΠΎ структурирован, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ стилизированной вСрсии, которая Ρ‚Π°ΠΊΠΆΠ΅ доступна Π½Π° kotlin.link.

Бсылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ
ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: АлСксандр Π”Π°Π²Ρ‹Π΄ΠΎΠ²

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ популярныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Kotlin

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ Ρ‚Ρ€ΡŽΠΊΠΈ для программирования Π½Π° языкС Kotlin

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Kotlin. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

ПослСднСС обновлСниС: 02.12.2017

Kotlin прСдставляСт статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ JetBrains. Kotlin ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ
Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Kotlin Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java (JVM) ΠΈ ΠΏΡ€ΠΈ компиляции компилируСтся Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈ Π² случаС с Java,
ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Kotlin Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ установлСна JVM. Π₯отя Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² JavaScript ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.
И, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Kotlin Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· всякой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ,
ΠΊΡ€ΡƒΠ³ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния Π½Π° Kotlin, Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΡˆΠΈΡ€ΠΎΠΊ — Windows, Linux, Mac OS, iOS, Android.

ΠŸΠ΅Ρ€Π²Π°Ρ вСрсия языка Π²Ρ‹ΡˆΠ»Π° 15 фСвраля 2016 Π³ΠΎΠ΄Π°. Π₯отя сама Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° языка вСлась с 2010 Π³ΠΎΠ΄Π°. Π’Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсиСй языка Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚
являСтся вСрсия 1.2, которая Π²Ρ‹ΡˆΠ»Π° 28 ноября 2017 Π³ΠΎΠ΄Π°.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Kotin развиваСтся ΠΊΠ°ΠΊ opensource, исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° github ΠΏΠΎ адрСсу
https://github.com/JetBrains/kotlin/.

Kotlin испытал влияниС ΠΌΠ½ΠΎΠ³ΠΈΡ… языков: Java, Scala, Groovy, C#, JavaScript, Swift ΠΈ позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС.
Он ΠΈΠΌΠ΅Π΅Ρ‚ ясный ΠΈ понятный синтаксис ΠΈ довольно Π»Π΅Π³ΠΎΠΊ для обучСния.

Π‘Π°ΠΌΡ‹ΠΌ популярным Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, Π³Π΄Π΅ примСняСтся Kotlin, являСтся ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ΄ ОБ Android. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ популярным,
Ρ‡Ρ‚ΠΎ компания Google Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Google I/O 2017 провозгласила Kotlin ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… языков для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android (наряду с
Java ΠΈ C++), Π° инструмСнты ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌ языком Π±Ρ‹Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Android Strudio начиная с вСрсии 3.0.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт языка — https://kotlinlang.org/, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΡΠ°ΠΌΡƒΡŽ послСднюю ΠΈ ΡΠ°ΠΌΡƒΡŽ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ языку.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Kotlin

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС Kotlin. Π§Ρ‚ΠΎ для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ? Для Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ понадобится тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой тСстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€,
Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, встроСнный Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ ΠΈΠ»ΠΈ Notepad++. И для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ компилятор.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ JDK (Java Development Kit). Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ JDK для установки ΠΌΠΎΠΆΠ½ΠΎ с сайта ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oracle —
http://www.oracle.com/technetwork/java/javase/downloads/index.html.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ компилятор нСпосрСдствСнно для самого языка Kotlin ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ адрСсу https://github.com/JetBrains/kotlin/releases/tag/v1.2.0.

По Π²Ρ‹ΡˆΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π°Ρ€Ρ…ΠΈΠ². Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΠΈ распакуСм ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π° ΠΏΠ°ΠΏΠΊΡƒ kotlinc. Π’ распакованном Π°Ρ€Ρ…ΠΈΠ²Π΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ kotlinc,
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ компиляция:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π° ТСстком дискС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для Ρ„Π°ΠΉΠ»ΠΎΠ² с исходным ΠΊΠΎΠ΄ΠΎΠΌ. НапримСр, Π² ΠΌΠΎΠ΅ΠΌ случаС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ c:/kotlin.
Π’ этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ создадим тСкстовый Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² app.kt. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ kt — это Π°Ρ€ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° языкС Kotlin.

Π”Π°Π»Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π² этом Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сообщСниС Π½Π° консоль:


fun main(args: Array<String>){
    println("Hello Kotlin")
}

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ опрСдСляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main, которая ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ дСйствия, выполняСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Для опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ примСняСтся
ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово fun.

Π­Ρ‚Π° функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ args, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт массив строк.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main выполняСтся другая функция — println(), которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сообщСниС Π½Π° консоль.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку. Π’Π½Π°Ρ‡Π°Π»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cd ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π³Π΄Π΅ находится Ρ„Π°ΠΉΠ» app.kt. Π—Π°Ρ‚Π΅ΠΌ для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:


c:\kotlin\bin\kotlinc app.kt -include-runtime -d app.jar

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ компилятору c:\kotlin\bin\kotlinc для компиляции Ρ„Π°ΠΉΠ» app.kt. (Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ компилятору,
ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды). Π”Π°Π»Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° -include-runtime указываСтся, Ρ‡Ρ‚ΠΎ создаваСмый Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ
срСду Kotlin. А ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -d ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ создаваСмый Ρ„Π°ΠΉΠ» прилоТСния, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это Π±ΡƒΠ΄Π΅Ρ‚ app.jar.

ПослС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ„Π°ΠΉΠ» app.jar. Π’Π΅ΠΏΠ΅Ρ€ΡŒ запустим Π΅Π³ΠΎ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Для этого Π²Π²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС считаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡƒΡ‚ΡŒ ΠΊ JDK, установлСнном Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, прописан Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды. Π˜Π½Π°Ρ‡Π΅ вмСсто «java»
придСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ java.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΈ запускС Ρ„Π°ΠΉΠ»Π° ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½Π° консоли строку «Hello Kotlin».

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ языка Kotlin для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π’ Ρ…ΠΎΠ΄Π΅ курса Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ язык программирования Kotlin, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для построСния Андроид ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Ρ‹ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ всСм ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Kotlin ΠΈ смоТСтС Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Java ΠΊ Kotlin.

ПолСзная ссылка:

Π―Π·Ρ‹ΠΊ Kotlin

Π―Π·Ρ‹ΠΊ Kotlin разрабатывался ΠΊΠ°ΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° языку Java. Π―Π·Ρ‹ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½Ρ‹ΠΉ синтаксис Π² сравнСнии с Java ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ схоТиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ дСйствия, Ρ‡Ρ‚ΠΎ ΠΈ Π΅Π³ΠΎ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±Ρ€Π°Ρ‚.

Kotlin Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ появился Π² 2016 Π³ΠΎΠ΄Ρƒ, хотя Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСлась с 2010 Π³ΠΎΠ΄Π°. Π£ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π³ΠΎΠ΄ послС Ρ€Π΅Π»ΠΈΠ·Π°, Π² 2017 Π³ΠΎΠ΄Ρƒ, Google сообщила Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° основС языка Kotlin ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ этот язык ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ сборку Android Studio, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡Ρ‚ΠΎ создана для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСх Андроид ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π•Ρ‰Π΅ Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π°, Π² 2019 Π³ΠΎΠ΄Ρƒ, компания Google сообщила Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Kotlin Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ являСтся Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, Π½Π΅ΠΆΠ΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Java.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠΌ плюсом языка Kotlin являСтся Π΅Π³ΠΎ простота, Π° Ρ‚Π°ΠΊΠΆΠ΅ лСгкая интСграция Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Java ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Π½Π΅ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ написан Π½Π° Kotlin ΠΈ Ρƒ вас всС Π±ΡƒΠ΄Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π²Π΅Ρ€Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ошибок Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

А Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ с Java?

Если Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ насчСт старого Π΄ΠΎΠ±Ρ€ΠΎΠ³ΠΎ языка Java, Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ вас сразу ΡƒΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒ. Π―Π·Ρ‹ΠΊ Java Ρ…ΠΎΡ‚ΡŒ ΠΈ ΡƒΠΆΠ΅ устарСл ΠΊΠ°ΠΊ ΠΌΠΎΡ€Π°Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΈ физичСски, Π½ΠΎ ΠΎΠ½ всС Ρ€Π°Π²Π½ΠΎ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ исчСзнСт.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, язык ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² сотнях тысяч Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ для ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ всС Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ язык Java.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, язык Kotlin, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Java Virtual Machine. Π­Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° написана Π½Π° Java ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ языки ΠΊΠ°ΠΊ Kotlin ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ саму ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ΠΊΠΈΠΉ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ ΠΊΡ€ΡƒΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Java ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ чувствуСт сСбя.

Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ вопрос, Π° Π·Π°Ρ‡Π΅ΠΌ ΡƒΡ‡ΠΈΡ‚ΡŒ Kotlin, Ссли Java всС Ρ€Π°Π²Π½ΠΎ Π½Π° этом Ρ€ΠΈΠ½Π³Π΅ «Босс»? ВсС Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Kotlin это ΠΊΠ°ΠΊ Π³Π»ΠΎΡ‚ΠΎΠΊ свСТСго Π²ΠΎΠ·Π΄ΡƒΡ…Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Андроид ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΠΈΡΠ°Ρ‚ΡŒ всС Π½Π° Java слоТно, вСдь ΠΎΠ½ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ. Kotlin ΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ Β Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ простой ΠΈ с Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ построСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°ΡΡΡŒ ΠΏΡ€ΠΎ слоТныС конструкции ΠΊΠΎΠ΄Π°.

План курса

Π’ курсС ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ язык Kotlin, начиная ΠΎΡ‚ простых ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ²: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ†ΠΈΠΊΠ»ΠΎΠ², массивов ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ ΠΈ заканчивая Π±ΠΎΠ»Π΅Π΅ слоТными понятиями: классами, интСрфСйсами, пСрСчислСниями ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

Π’ ΠΊΠΎΠ½Ρ†Π΅ курса ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Android Studio. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ создана Π½Π° основС языка Kotlin. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ сам язык программирования, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ для построСния Андроид ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π₯ΠΎΡ‡Ρƒ всё Π·Π½Π°Ρ‚ΡŒ. Π―Π·Ρ‹ΠΊ Kotlin | GeekBrains

По-настоящСму интСрСсный Java-Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒ.

https://d2xzmw6cctk25h.cloudfront.net/post/1116/og_cover_image/7be512347c8377d063f988039edc669f

Β 

Π’ 2010 Π³ΠΎΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² российского отдСлСния JetBrains взялась Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π±Ρ‹ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ типобСзопаснСС, Ρ‡Π΅ΠΌ Java, Π½ΠΎ Π½Π΅ Ρ‚Π°ΠΊ слоТСн, ΠΊΠ°ΠΊ Scala. НазваниС этому языку Π±Ρ‹Π»ΠΎ Π΄Π°Π½ΠΎ Π² Ρ‡Π΅ΡΡ‚ΡŒ острова ΠšΠΎΡ‚Π»ΠΈΠ½, располоТСнного Π² Ѐинском Π·Π°Π»ΠΈΠ²Π΅ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Π²Π°Π½ Π² Ρ‡Π΅ΡΡ‚ΡŒ острова).

Если Π²Ρ‹ посмотритС Π½Π° любой соврСмСнный ΠΎΠ±Π·ΠΎΡ€ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ пСрспСктивных языков программирования, Π² Ρ‚ΠΎΠΌ числС наш, Π²Ρ‹ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ‚Π°ΠΌ Kotlin. Π’ Ρ‡Π΅ΠΌ ΡΡƒΡ‚ΡŒ этого языка, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Ρ‚Π°ΠΊ всСм нравится, ΠΊΠ°ΠΊΠΈΠ΅ Ρƒ Π½Π΅Π³ΠΎ пСрспСктивы β€” ΠΎΠ± этом Π΄Π°Π»Π΅Π΅.

Бинтаксис

ИдСя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ язык, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ, ΠΊΠ°ΠΊ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΈ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Ρ€Π°Π·ΠΈΠ»Π°ΡΡŒ Π² Π΅Π³ΠΎ синтаксисС. Как ΠΈ любой соврСмСнный Π°Π½Π°Π»ΠΎΠ³, Kotlin β€” ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ понятный. ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Java Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: использованиС Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой для раздСлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм — компилятор Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всё ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли просто ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку. ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ β€”Β ΠΎΠ½ опрСдСлится автоматичСски.

ΠŸΡ€ΠΈ этом Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Kotlin Π² ΠΏΠ»Π°Π½Π΅ записи Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ вСрнулся ΠΊ ΡΡ‚ΠΈΠ»ΡŽ Pascal β€”Β Π·Π΄Π΅ΡΡŒ Ρ‚ΠΎΠΆΠ΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ главСнствуСт Π½Π°Π΄ Ρ‡Ρ‘Ρ‚ΠΊΠΎΡΡ‚ΡŒΡŽ конструкций. НСмного ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² этой нСбольшой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π’ Π½Π΅ΠΉ рассмотрСны лишь Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ построСния языков Β Java ΠΈ Kotlin, поэтому понятна ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всСм.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, нСбольшой кусочСк ΠΊΠΎΠ΄Π° всё ΠΆΠ΅ оставим:

fun main(args : Array<String>) {

Β val scope = «world»

Β println(«Hello, $scope!»)

}

ΠŸΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ простая запись, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ понятна Π»ΡŽΠ±ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ хотя Π±Ρ‹ Π³ΠΎΠ΄ Π² школС ΠΈΠ»ΠΈ унивСрситСтС ΡƒΡ‡ΠΈΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π’Π°ΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Kotlin ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстим с Java. ИмСнно поэтому Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… Π΅Π³ΠΎ рассматривали ΠΊΠ°ΠΊ простой синтаксичСский сахар, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ для комплСксных Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ просто Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ силы.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ всС прСимущСства Π² сравнСнии с Java ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π½Π°Π·Π²Π°Π½Ρ‹, поэтому просто собСрСм ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС:

  1. ОбъСм ΠΊΠΎΠ΄Π°. НСиспользованиС Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Π°Ρ€Ρ…Π°ΠΈΡ‡Π½Ρ‹Ρ… кусков ΠΊΠΎΠ΄Π° ускоряСт процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ;

  2. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Π—Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² синтаксис языка ΠΏΡ€Π°Π²ΠΈΠ»Π° создания ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ отслСТиваСмых ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ лишь Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

  3. Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Java. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния обучСния Π½ΠΎΠ²ΠΎΠΌΡƒ языку, ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния постСпСнного ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² c Java Π½Π° Kotlin. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Basecamp.

НСдостатки

Как Ρƒ языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π½Π° основС Java, Ρƒ Kotlin ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π½ΠΈΠΌ Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… нСдостатка: ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΡΡ‚ΡŒ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС всС понятно: работая Π½Π° JVM Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ Java. Вторая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ надуманная для ΡΡ‚ΠΎΠ»ΡŒ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ языка, вСдь Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π΅ ΠΎΠ½ сущСствуСт Ρ‡ΡƒΡ‚ΡŒ большС Π³ΠΎΠ΄Π°. Π”Π°, здСсь сущСствСнно мСньшС инструмСнтов ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‡Π΅ΠΌ Π½Π° Java. Но, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΠΊΠ° это Π½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² ΠΌΠΈΡ€Π΅ Java количСство Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²Π΅Π·Π΄Π΅ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΎ Π² качСство.

Kotlin ΠΆΠ΅ ΠΏΠΎΠΊΠ° со своими Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ справляСтся, Π° полная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Java ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π³Π»Π°Π·Π° Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

ΠŸΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Ρ‹

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Kotlin Π½Π°Ρ‡Π°Π»Π°ΡΡŒ Π² 2010 Π³ΠΎΠ΄Ρƒ, пСрвая ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ вСрсия ΡƒΠ²ΠΈΠ΄Π΅Π»Π° свСт лишь Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅ 2016. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ языка ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ растСт, Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ TIOBE ΠΎΠ½ Π·Π° Π³ΠΎΠ΄ ворвался Π² TOP-50, Π° Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ мСсяцС Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Google I/O Π±Ρ‹Π»ΠΎ объявлСно ΠΎΠ± ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Kotlin Π² систСмС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Учитывая Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ IntelliJ IDEA срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ставку ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π° Kotlin, ΠΌΠΎΠΆΠ½ΠΎ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· 3-4 Π³ΠΎΠ΄Π° ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΅Π³ΠΎ срСди ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹Ρ… ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ² Java ΠΈ Swift Π² области мобильной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли создатСли языка Π½Π΅ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΡƒΡŽΡ‚ΡΡ Π² своСм ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅, навСрняка Kotlin отправится Π²ΡΠ΅Ρ€ΡŒΠ΅Π· Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Ρ‹: Π²Π΅Π±, ИИ, ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π²Π΅Ρ‰Π΅ΠΉ, большиС Π΄Π°Π½Π½Ρ‹Π΅, дСсктопныС прилоТСния.

Если вас Π²ΡΠ΅Ρ€ΡŒΡ‘Π· заинтСрСсовал этот язык, Ρ‚ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ заглянитС Π½Π° Π΅Π³ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт (русская вСрсия) ΠΈ испытайтС всС Π΅Π³ΠΎ прСимущСства Π½Π° Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅. Π‘ΠΏΠ΅ΡˆΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° это Π½Π΅ стало мСйнстримом.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Kotlin. ΠšΡƒΡ€Ρ «Kotlin с нуля»

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ созданиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π°Ρ‡Π°Π»ΠΎ Π±ΡƒΡ€Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ с сСрСдины ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ столСтия. Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ появилось мноТСство языков ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

На сСгодняшний дСнь ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° всС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ устройства, ΠΎΡ‚ встроСнных Π² Π±Ρ‹Ρ‚ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ микропроцСссоров Π΄ΠΎ ΡΡƒΠΏΠ΅Ρ€ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх сфСрах Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΎΡ‚ контроля запуска Ρ€Π°ΠΊΠ΅Ρ‚ Π΄ΠΎ ΠΈΠ³Ρ€.

ВсС это Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π° мноТСствС языков программирования, ΠΎΡ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ этом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ: ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Из-Π·Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСства ΠΊΠ°ΠΊ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ сфСр ΠΈΡ… примСнСния, профСссия программиста Π½Π΅ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Π°. Π’Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ – Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ программист, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Они ΠΏΠΈΡˆΡƒΡ‚ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках, хотя вСроятно ΠΈΠΌ нСслоТно ΠΏΠ΅Ρ€Π΅ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΡ‚Π°Π½ΠΎΠ²ΡΡΡŒ Π½Π° ΠΏΡƒΡ‚ΡŒ программиста, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл сразу Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ сфСру своСй Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с языками.

Kotlin – ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π·Π΄Π΅. Однако Π½Π° сСгодняшний дСнь основная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ примСнСния – это Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Android. Компания Google Π²Ρ‹Π±Ρ€Π°Π»Π° ΠšΠΎΡ‚Π»ΠΈΠ½ Π² качСствС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка для этого. Π—Π΄Π΅ΡΡŒ ΠΎΠ½ постСпСнно замСняСт собой язык Java.

ΠšΠΎΡ‚Π»ΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ осоврСмСнСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π”ΠΆΠ°Π²Ρ‹, хотя Π² Π½Π΅ΠΌ Π½Π΅ΠΌΠ°Π»ΠΎ элСмСнтов, заимствованных ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π² Ρ‚ΠΎΠΌ числС ΠŸΠΈΡ‚ΠΎΠ½Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, написанный Π½Π° Kotlin, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ΄Ρƒ, написанному Π½Π° Java. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Kotlin совмСстим с Java, ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Π΄Π²ΡƒΡ… языках.

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΈΡˆΠ΅Ρ‚ программист, называСтся исходным ΠΊΠΎΠ΄ΠΎΠΌ. БСгодня ΠΌΡ‹ пишСм Π½Π° языках программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ английскиС слова ΠΈ Ρ„Ρ€Π°Π·Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π±ΠΎΠ»Π΅Π΅ строгий английский язык, Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ свои ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ особСнности. Π―Π·Ρ‹ΠΊΠΈ программирования (ЯП) ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹, Ρ‡Π΅ΠΌ СстСствСнныС языки, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΌΡ‹ΡΠ»ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ЯП Π² основном связана с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ слов ΠΈ строгими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΡ… записи ΠΈ мСста примСнСния. Однако, Ссли ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ популярного ЯП, Ρ‚ΠΎ количСство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹Ρ… ΠΈΡ… слов Π±ΡƒΠ΄Π΅Ρ‚ достаточно большим.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ЯП Π½Π΅ слСдуСт ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ способ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ это Π½Π΅ Ρ‚Π°ΠΊ, хотя Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивноС ΠΈΠ»ΠΈ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ всСго ΠΎΠ΄Π½ΠΎ.

Π˜Ρ‚Π°ΠΊ, сСгодня ΠΌΡ‹ пишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ английском языкС с использованиСм особых Π·Π½Π°ΠΊΠΎΠ² ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ. Но Ρ€Π°Π·Π²Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ тСксты способСн ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€?

Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ машина, Π΅Π΅ процСссор Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄. «Π–Π΅Π»Π΅Π·ΠΎ» ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ – ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ нулями ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ. Когда-Ρ‚ΠΎ программисты Ρ‚Π°ΠΊ ΠΈ писали – Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… языках. Однако Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ большиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π½ΠΈΡ… Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π΄ΡƒΠΌΠ°Π΅Ρ‚ словами, Π° Π½Π΅ числами.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ числовыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ стали Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ словами, ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ΄Π½ΠΈΠΌ словом ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄. ПозТС стали ΠΏΡ€ΠΈΠ΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ структуру.

ΠŸΡ€ΠΈ этом ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ особая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π° Π±Ρ‹ с чСловСчСского ЯП Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык. Π•Π΅ Π½Π°Π·Π²Π°Π»ΠΈ транслятором. Она Ρ‡ΠΈΡ‚Π°Π»Π° исходный ΠΊΠΎΠ΄, написанный Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠ»Π° Π΅Π³ΠΎ Π² ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π° ΠΏΠΎΠ·ΠΆΠ΅ Ρ‚Π° ΠΈΠ»ΠΈ иная опСрационная систСма, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

Для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° исходного ΠΊΠΎΠ΄Π° Π² исполняСмый для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ЯП Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-трансляторы. БущСствуСт Π΄Π²Π° основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ трансляции – это компиляция ΠΈ интСрпрСтация. Π’ случаС компилятора вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сразу транслируСтся (пСрСводится) Π² исполняСмый Π²ΠΈΠ΄. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ». ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ транслятор Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ исходный ΠΊΠΎΠ΄ нСбольшими порциями. Π’ случаС «Ρ‡ΠΈΡΡ‚ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ» Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ создаСтся.

Π‘ языка ΠšΠΎΡ‚Π»ΠΈΠ½ сущСствуСт нСсколько разновидностСй трансляторов. ВсС ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ компилятора. Однако Π½Π΅ всС пСрСводят ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² исполняСмый ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΊΠΎΠ΄.

Π§Π°Ρ‰Π΅ всСго исходный kotlin-ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ Π² java-Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, выполняСмый Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java (JVM). Π‘Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ исполняСт JVM, – это Π½Π΅ совсСм ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ½ скорСС ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ассСмблСр, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ соотвСтствуСт ΠΎΠ΄Π½ΠΎ слово. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π² случаС Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° кодируСтся ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ.

JVM Π² основном Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ участки ΠΊΠΎΠ΄Π°.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΡƒΠ΄ΠΎΠ±Π½Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° любом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π³Π΄Π΅ установлСна JVM. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π²Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для Linux, Windows ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм.

Вопросы:

  1. Π•ΡΡ‚ΡŒ Π»ΠΈ, Π½Π° ваш взгляд, Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ понятиями «ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°» ΠΈ «ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅»?

  2. Π’ ΠΊΠ°ΠΊΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой находятся языки Java ΠΈ JavaScript?

  3. Как Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния часто вСдСтся сразу Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования?

PDF-вСрсия курса с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ ΠΊ практичСским Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android «Kotlin. ΠšΡƒΡ€Ρ»

БСрия Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠΎΠ² ΠΏΠΎ Kotlin / Π₯Π°Π±Ρ€

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ тСбя β€” Π§Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΆΠ°ΠΆΠ΄ΡƒΡ‰ΠΈΠΉ Π·Π½Π°Π½ΠΈΠΉ!
Π₯ΠΎΡ‡Ρƒ подСлится с Ρ‚ΠΎΠ±ΠΎΠΉ своим нСбольшими Π½ΠΎ Π΄ΡƒΠΌΠ°ΡŽ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для ΠΌΠ½ΠΎΠ³ΠΈΡ… знаниями ΠΏΠΎ Kotlin Π² Π²ΠΈΠ΄Π΅ нСбольшой сСрии Π²ΠΈΠ΄Π΅ΠΎ.

Как Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… мСня заинтСрСсовал Kotlin, Π΅Ρ‰Π΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΅Π³ΠΎ анонсов я Π½Π°Ρ‡Π°Π» слСдил Π·Π° Π΄Π°Π½Π½Ρ‹ΠΌ языком ΠΈ ΠΏΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π» Π΅Π³ΠΎ ΠΈ Π²Π½ΠΈΠΊΠ°Π» Π² Π΅Π³ΠΎ сладости.

И послС ΠΎΡ„Ρ„. Ρ€Π΅Π»ΠΈΠ·Π° я всС ΠΆΠ΅ Ρ€Π΅ΡˆΠΈΠ» подСлится с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΌΠΈ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ крутости этого языка ΠΈΠ»ΠΈ ΠΆΠ΅ Π΄Π°ΠΆΠ΅ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π³ΠΎ β€” Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ заинтСрСсовав ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Kotlin.

НиТС ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· сСрии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания Π΄Π°Π½Π½ΠΎΠ³ΠΎ поста, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сСрии Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ процСссС развития ΠΈ СТСнСдСльно ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ Π²ΠΈΠ΄Π΅ΠΎ.

Вся сСрия Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½ΠΎΠ²Ρ‹Π΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ Π² этот плСйлист.

Π£Ρ€ΠΎΠΊ 0. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π£Ρ€ΠΎΠΊ 1. String Templates

Π£Ρ€ΠΎΠΊ 2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ var vs. val

Π£Ρ€ΠΎΠΊ 3. Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Kotlin

Π£Ρ€ΠΎΠΊ 4. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π£Ρ€ΠΎΠΊ 5. NPE ΠΈ Null Safety

Π£Ρ€ΠΎΠΊ 6. Π Π°Π±ΠΎΡ‚Π° с классами ΠΈ ΠΈΡ… свойствами

Π£Ρ€ΠΎΠΊ 7. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ — Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ классов

Π£Ρ€ΠΎΠΊ 8. Enum — ΠŸΠ΅Ρ€Π΅Ρ‡Π΅ΡΠ»Π΅Π½ΠΈΡ ΠΈ ΠΈΡ… Ρ€ΠΎΠ»ΡŒ

Π£Ρ€ΠΎΠΊ 9. When — ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±ΠΎΡ€Π°

Π£Ρ€ΠΎΠΊ 10. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹

Π£Ρ€ΠΎΠΊ 11. АбстрактныС классы ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ open

Π£Ρ€ΠΎΠΊ 12. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ open ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ примСнСния

Π£Ρ€ΠΎΠΊ 13. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа

Π£Ρ€ΠΎΠΊ 14. ΠšΡ€ΡƒΡ‚ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠ²

Π£Ρ€ΠΎΠΊ 15. ИспользованиС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° IN

Π£Ρ€ΠΎΠΊ 16. Как ΠΏΠΈΡˆΡƒΡ‚ΡΡ POJO Π² Kotlin?

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ записи ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° я ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ ΠΎΡ„Ρ„. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΊΠ½ΠΈΠ³ΠΎΠΉ Kotlin in Action.

p.s. Π‘ΡƒΠ΄Ρƒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ вашим коммСнтария ΠΏΠΎΠ΄ Π²ΠΈΠ΄Π΅ΠΎ замСчаниям ΠΈΠ»ΠΈ ΠΆΠ΅ просто прСдлоТСниями Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎ.

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin Π·Π° 2 часа

  • Π”ΠΎΠΌΠ°ΡˆΠ½ΡΡ страница
  • ВСстированиС

      • Назад
      • Π“ΠΈΠ±ΠΊΠΎΠ΅ тСстированиС
      • BugZilla
      • Cucumber
      • ВСстированиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
      • 000
      • ВСстированиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ETL
      • JUnit
      • LoadRunner
      • Π ΡƒΡ‡Π½ΠΎΠ΅ тСстированиС
      • МобильноС тСстированиС
      • Mantis
      • ΠŸΠΎΡ‡Ρ‚Π°Π»ΡŒΠΎΠ½
      • QTP
      • Назад
      • Π¦Π΅Π½Ρ‚Ρ€ качСства (ALM)
      • 000
      • Π¦Π΅Π½Ρ‚Ρ€ контроля качСства (ALM)
      • 000 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ тСстированиСм

      • TestLink
  • SAP

      • Назад
      • ABAP
      • APO
      • ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • FICO
      • 000 HRM
      • 000 HRM
      • MM Pay
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
      • ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ
      • Successfactors
      • SAP Tutorials
  • Web
  • Web
  • AngularJS
  • ASP.Net
  • C
  • C #
  • C ++
  • CodeIgniter
  • Π‘Π£Π‘Π”
  • JavaScript
  • Назад
  • Java
  • JSP
  • Kotlin
  • Linux
  • Linux
  • Kotlin
  • Linux
  • js

  • Perl
  • Назад
  • PHP
  • PL / SQL
  • PostgreSQL
  • Python
  • ReactJS
  • Ruby & Rails
  • Scala
  • SQL
  • 000

  • SQL
  • 000

    0003 SQL

    000

    0003 SQL

    000

  • UML
  • VB.Net
  • VBScript
  • Π’Π΅Π±-слуТбы
  • WPF
  • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Π΅!

      • Назад
      • БухгалтСрский ΡƒΡ‡Π΅Ρ‚
      • Алгоритмы
      • Android
      • Π‘Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½
      • БизнСс-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ
      • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-сайта
      • CCNA
      • ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ вычислСния
      • 03 COBOL

    • 9000 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ COBOL

      9000

      Книги

      Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅

      Head First ΠšΠΎΡ‚Π»ΠΈΠ½

      ΠΈ

      Head First Kotlin
      это ΠΏΠΎΠ»Π½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin. Π­Ρ‚Π° практичСская ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ язык Kotlin с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, выходящСго Π·Π° Ρ€Π°ΠΌΠΊΠΈ синтаксиса ΠΈ практичСских руководств, ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²Π΅Π»ΠΈΠΊΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Kotlin. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ всС, ΠΎΡ‚ основ языка Π΄ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΉ, лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка.ΠŸΠΎΠΏΡƒΡ‚Π½ΠΎ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ ΠΊΠ°ΠΊ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΈ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎ-настоящСму ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠšΠΎΡ‚Π»ΠΈΠ½, эта ΠΊΠ½ΠΈΠ³Π° для вас.

      ΠšΠΎΡ‚Π»ΠΈΠ½ Π² дСйствии

      ΠΈ

      Kotlin in Action ΡƒΡ‡ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Kotlin
      язык для
      прилоТСния производствСнного качСства. Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° с мноТСством ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², написанная для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Java,
      дальшС
      Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ языковых ΠΊΠ½ΠΈΠ³, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π°ΠΊΠΈΠ΅ интСрСсныС Ρ‚Π΅ΠΌΡ‹, ΠΊΠ°ΠΊ построСниС DSL с синтаксисом СстСствСнного языка.

      Книга написана Π”ΠΌΠΈΡ‚Ρ€ΠΈΠ΅ΠΌ Π•ΠΌΠ΅Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΈ Π‘Π²Π΅Ρ‚Π»Π°Π½ΠΎΠΉ Исаковой, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Kotlin.

      Π“Π»Π°Π²Π° 6, посвящСнная систСмС Ρ‚ΠΈΠΏΠΎΠ² Kotlin, ΠΈ Π³Π»Π°Π²Π° 11, посвящСнная DSL, доступны Π² качСствС бСсплатного ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра Π½Π°
      Π²
      Π²Π΅Π±-сайт издатСля.

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin: Руководство ΠΏΠΎ Ρ€Π°Π½Ρ‡ΠΎ Big Nerd

      ΠΈ

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin:
      ΠŸΡƒΡ‚Π΅Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ Ρ€Π°Π½Ρ‡ΠΎ Big Nerd.Π’ этой ΠΊΠ½ΠΈΠ³Π΅ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с языком Kotlin Ρ‡Π΅Ρ€Π΅Π·
      Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½Ρ‹Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ вас элСгантному ΡΡ‚ΠΈΠ»ΡŽ ΠΈ функциям Kotlin.
      Начиная с ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΌΡƒ использованию Kotlin,
      Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с мСньшим количСством ΠΊΠΎΠ΄Π°.

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin

      ΠΈ

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅
      это ΠΊΠ½ΠΈΠ³Π° Π’Π΅Π½ΠΊΠ°Ρ‚Π° Π‘ΡƒΠ±Ρ€Π°ΠΌΠ°Π½ΠΈΠ°ΠΌΠ°.ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π½Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Kotlin, ΠΈΠΌ это нравится. Π”Π°ΠΆΠ΅ Google принял Π΅Π³ΠΎ ΠΊΠ°ΠΊ пСрвоклассный язык для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ стили программирования ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСго для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ. ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ этого ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ, свободного, элСгантного ΠΈ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ языка со статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простых для понимания ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ обслуТиваСмыС Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прилоТСния для JVM ΠΈ Android, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ DSL, асинхронно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

      Π Π°Π΄ΠΎΡΡ‚ΡŒ ΠšΠΎΡ‚Π»ΠΈΠ½Π°

      ΠΈ

      Π Π°Π΄ΠΎΡΡ‚ΡŒ ΠšΠΎΡ‚Π»ΠΈΠ½Π°
      Π½Π°ΡƒΡ‡ΠΈΡ‚ вас ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° Kotlin. Π’ этой ΠΏΡ€ΠΎΠ½ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅
      Π²Ρ‹ ΠΎΠ²Π»Π°Π΄Π΅Π΅Ρ‚Π΅ языком Kotlin, изучая ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ кодирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ вас Π»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ
      нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ язык Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. Kotlin ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ программирования,
      Ρ‚Π°ΠΊ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΡ€ ΠŸΡŒΠ΅Ρ€-Ив Π‘ΠΎΠΌΠΎΠ½ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ с ΠΎΠ±Π·ΠΎΡ€Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² нСизмСнности ЀП,
      ссылочная ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ эффСктов.Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚Π΅ΡΡŒ Π² использованиС Kotlin Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки ΠΈ Π΄Π°Π½Π½Ρ‹Π΅.
      Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ,
      ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ раздСляСмых состояний ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с лСнь. Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ способ программирования — ΠΈ
      Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Π°ΠΌ Ρ‡Π°ΡΡ‚ΡŒ радости, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ испытали, ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΈ.

      ΠžΠ±Ρ‰ΠΈΠΉ

      БоврСмСнная Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Kotlin

      ΠΈ

      БоврСмСнная Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с Kotlin — это
      ΠΊΠ½ΠΈΠ³Π°
      ДСнис Калинин ΠΎ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° Kotlin.Он ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ достаточно основ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π½ΠΎ Π² основном
      ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ‚Ρ‹
      ΠΎ практичСском аспСктС использования языка. Π’ частности, ΠΎΠ½ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π· процСсс создания
      Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с использованиСм популярных сСрвСрных ΠΈ интСрфСйсных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

      Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠšΠΎΡ‚Π»ΠΈΠ½, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅

      ΠΈ

      Fundamental Kotlin — Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
      Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π°.Он Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΊΠ½ΠΈΠ³Ρƒ Fundamental Kotlin ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π°ΠΌ свСТиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Kotlin.
      использованиС языка программирования.

      Руководство программиста ΠΏΠΎ Kotlin

      ΠΈ

      Руководство программиста ΠΏΠΎ
      ΠšΠΎΡ‚Π»ΠΈΠ½
      — ΠΊΠ½ΠΈΠ³Π° Майка ДТСймса, знакомящая программистов с Kotlin. Книга ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠšΠΎΡ‚Π»ΠΈΠ½.
      ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½Π½Ρ‹ΠΉ язык
      Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ качСствСнныС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

      ΠšΠΎΡ‚Π»ΠΈΠ½

      Ρ‚Ρ€

      ΠšΠΎΡ‚Π»ΠΈΠ½
      ΠœΠ΅Ρ…ΠΌΠ΅Ρ‚ Али SICAK Π±Ρ‹Π» создан, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ программистов с Kotlin.
      Π­Ρ‚ΠΎ пСрвая ΠΈ ΠΏΠΎΠΊΠ° СдинствСнная ΠΊΠ½ΠΈΠ³Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π° Π½Π° Ρ‚ΡƒΡ€Π΅Ρ†ΠΊΠΎΠΌ языкС.
      ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ 17 июля 2017 Π³ΠΎΠ΄Π°, ΠšΠΎΡ‚Π»ΠΈΠ½ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ‚Π΅ΠΌ ΠΎΡ‚ ΠšΠΎΡ‚Π»ΠΈΠ½Π° ΠΈ ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΉ, ΠšΠΎΡ‚Π»ΠΈΠ½Π°.
      ΠΈ Java,
      Kotlin ΠΈ Android, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с Kotlin ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Kotlin.Π‘ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ
      пониманиС использования
      ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, концСпция Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, массивы, ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, интСрфСйсы, ΠΎΠ±Ρ‰ΠΈΠ΅,
      абстрактныС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΡ€Π°Π²ΠΈΠ»Π° наслСдования ΠΈ пСрСопрСдСлСния
      с Kotlin, с мноТСством ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
      Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° прСдоставляСт Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ ΠΈ программистам срСднСго уровня ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± основных
      ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ языка Kotlin для ΠΏΡ€ΠΎΡ‡Π½ΠΎΠΉ основы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅
      ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
      с Android.Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° Π½Π° Ρ‚ΡƒΡ€Π΅Ρ†ΠΊΠΎΠΌ языкС.

      Π£Ρ‡Π΅Π½ΠΈΠΊ ΠšΠΎΡ‚Π»ΠΈΠ½Π°

      ΠΈ

      Π£Ρ‡Π΅Π½ΠΈΠΊ ΠšΠΎΡ‚Π»ΠΈΠ½Π°
      Kotlin Apprentice фокусируСтся Π½Π° основах языка Kotlin. Если Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² языкС ΠšΠΎΡ‚Π»ΠΈΠ½,
      Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΠΎΡΡ‚ΡŒΡΡ: эта ΠΊΠ½ΠΈΠ³Π° начинаСтся с основ — с ввСдСния
      ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас с основами Kotlin.
      Но Ссли Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Kotlin, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ срСдний ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
      ΠΈ Π½ΡŽΠ°Π½ΡΡ‹ языка, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅,
      соглашСния ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ сопрограммы.Каким Π±Ρ‹ Π½ΠΈ Π±Ρ‹Π»ΠΎ вашС знакомство с языком,
      эта ΠΊΠ½ΠΈΠ³Π° Π½Π°ΡƒΡ‡ΠΈΡ‚ вас ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅ для создания
      чистыС ΠΈ соврСмСнныС прилоТСния Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅.

      ΠšΠΎΡ‚Π»ΠΈΠ½ Kompakt

      ΠΈΠ·

      ΠšΠΎΡ‚Π»ΠΈΠ½
      Kompakt
      ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для профСссионалов Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Π·Π°Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π½Π° Kotlin Π·Π° минимальноС врСмя.
      Π‘ΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Ρ… Π³Π»Π°Π²Π°Ρ…, Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Kotlin Π·Π° нСсколько
      Π΄Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π² ΠΌΠ΅Ρ‚Ρ€ΠΎ, ​​и вскорС Π²Ρ‹ смоТСтС ΠΏΠΈΡΠ°Ρ‚ΡŒ свои ΠΏΠ΅Ρ€Π²Ρ‹Π΅ прилоТСния Kotlin.Как слСдуСт ΠΈΠ· названия, Β«Kotlin KompaktΒ» Π½Π΅ являСтся Π²ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π½Π°Π΄ Kotlin. Π‘ΠΊΠΎΡ€Π΅Π΅,
      Π΅Π³ΠΎ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ основы ΠΈ Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Kotlin,
      Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠΌ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ языком программирования.

      Kotlin — ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android

      ΠΏΡ‚

      ΠšΠΎΡ‚Π»ΠΈΠ½
      — Les fondamentaux du dΓ©veloppement d’applications Android, ΠΊΠ½ΠΈΠ³Π° Π°Π²Ρ‚ΠΎΡ€Π°
      Π­Π½Ρ‚ΠΎΠ½ΠΈ Коссон, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Editions ENI.ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π³Π»Π°Π²Ρ‹ ΠΊΠ½ΠΈΠ³ΠΈ
      посвящСны ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ языка ΠšΠΎΡ‚Π»ΠΈΠ½. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π³Π»Π°Π²Ρ‹ посвящСны Android
      Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Kotlin. Книга составлСна ​​из мноТСства ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²
      Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

      ΠšΠΎΡ‚Π»ΠΈΠ½

      это

      ΠšΠΎΡ‚Π»ΠΈΠ½
      Π­Ρ‚ΠΎ язык программирования с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ для интСрфСйса, выполняСмого с Java, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JavaScript, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ простой ΠΈ понятный интСрфСйс.Частично Π² 2017 Π³ΠΎΠ΄Ρƒ обратная сторона Kotlin Γ¨ cresciuto costantemente a seguito della solution of Google di supportarlo, являСтся основным языком для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Java.
      Π­Ρ‚ΠΎ руководство Π½Π΅ содСрТит ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, основанных Π½Π° Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ. Dopo l’esplorazione dell’ambiente di sviluppo, si affronta la sintassi di base e i «mattoni» del linguaggio, с особым Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΊ развлСчСниям. Quindi viene affrontata la programmazione a oggetti e quella funzionale, prima di consplorando alcuni degli aspetti piΓΉ avanzati, come l’interoperabilitΓ  con Java, i contract e le coroutine.Una lettura adatta sia a chi desidera conoscere un nuovo e moderno linguaggio, sia agli sviluppatori mobile, che vogliono iniziare sfruttare Kotlin для создания прилоТСния Android.

      Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠšΠΎΡ‚Π»ΠΈΠ½

      ΠΈ

      Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠšΠΎΡ‚Π»ΠΈΠ½
      это ΠΊΠ½ΠΈΠ³Π° ΠœΠ°Ρ€Ρ†ΠΈΠ½Π° Москала. ΠšΠΎΡ‚Π»ΠΈΠ½ — ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ язык, Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ Π½Π΅ΠΌ нСдостаточно.
      Π΅Π³ΠΎ особСнности. Нам Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΡ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° прСдставляСт собой руководство для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π° Kotlin ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π½Π° Kotlin. Он прСдставляСт ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Kotlin. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ прСдставлСн ΠΊΠ°ΠΊ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ практичСскоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ объяснСниями ΠΈ практичСскими ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

      Einstieg Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅

      ΠΈΠ·

      ΠΠΉΠ½ΡˆΡ‚ΠΈΠ³ Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅
      это ΠΊΠ½ΠΈΠ³Π° Вомаса Вайса. Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° позволяСт Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния для Android с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin.Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ всС Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с концСпциями языка программирования. Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ систСмныС слуТбы. Благодаря мноТСству ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ понятному списку ΠΊΠΎΠ΄Π° Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ быстро научатся Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π°ΡƒΠ΄ΠΈΠΎ- ΠΈ видСозаписи ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ бСзопасная навигация, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ написана для Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Kotlin; ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, пСрСходящиС с Java Π½Π° Kotlin, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡ‚ мноТСства ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈΡ… объяснСний.ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: эта ΠΊΠ½ΠΈΠ³Π° доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠΌ языкС.

      Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠšΠΎΡ‚Π»ΠΈΠ½Π°

      ΠΈ

      Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠšΠΎΡ‚Π»ΠΈΠ½Π°
      — это ΠΊΠ½ΠΈΠ³Π° Π₯Π°Π½ΠΈ М. К. МСнСС Ρ‡Π΅ΠΌ Π½Π° 100 страницах эта ΠΊΠ½ΠΈΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ синтаксис ΠΈ особСнности Kotlin прямым ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ объяснСниСм. Π’Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с концСпциями программирования Kotlin, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ классы, наслСдованиС, свойства, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, лямбда-выраТСния, Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ, сопрограммы ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ, Ρ‚Π°ΠΊ ΠΈ занятым программистам.

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Android

      Kotlin для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Android

      ΠΈ

      Kotlin для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Android — ΠΊΠ½ΠΈΠ³Π° Π°Π²Ρ‚ΠΎΡ€Π°
      Антонио Π›Π΅ΠΉΠ²Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚
      ΠΊΠ°ΠΊ Kotlin ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Android-прилоТСния с нуля.

      Π£Ρ‡Π΅Π½ΠΈΠΊ Android

      ΠΈ

      Π£Ρ‡Π΅Π½ΠΈΠΊ Android
      Если Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Android ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π½Π° Kotlin, эта ΠΊΠ½ΠΈΠ³Π° для вас.Android Apprentice ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Π½Π° всСм ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚ создания вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ прилоТСния Π΄ΠΎ ΠΏΠΎΠ΄Π°Ρ‡ΠΈ вашСго прилоТСния Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ.
      К ΠΊΠΎΠ½Ρ†Ρƒ ΠΊΠ½ΠΈΠ³ΠΈ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ достаточно ΠΎΠΏΡ‹Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΡ‚ΡŒ свои расплывчатыС ΠΈΠ΄Π΅ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ смоТСтС
      выпуск Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Google Play.
      Π’Ρ‹ создадитС 4 ΠΏΠΎΠ»Π½Ρ‹Ρ… прилоТСния с нуля — ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ.
      ВмСстС эти прилоТСния Π½Π°ΡƒΡ‡Π°Ρ‚ вас Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными элСмСнтами управлСния ΠΈ API, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Android.
      Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ.

      Kotlin для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Android

      ΠΈ

      Kotlin для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android
      ΠŸΠΈΡ‚Π΅Ρ€Π° Π—ΠΎΠΌΠΌΠ΅Ρ€Ρ…ΠΎΡ„Ρ„Π°, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ практичСскоС Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠšΠΎΡ‚Π»ΠΈΠ½Π°,
      с практичСской ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π² ​​двух ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° — золотая сСрСдина ΠΌΠ΅ΠΆΠ΄Ρƒ тСориями
      ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования,
      ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π² Kotlin с тысячами ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π°.

      ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin

      ΠΈ

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Kotlin — это
      ΠΊΠ½ΠΈΠ³Π° Π‘Ρ‚ΠΈΠ²Π΅Π½Π° Бамуэля ΠΈ
      Π‘Ρ‚Π΅Ρ„Π°Π½ Π‘ΠΎΠΊΡƒΡ‚ΠΈΡƒ ΠΎΠ± использовании Kotlin Π½Π° JVM. Он ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС аспСкты языка с особым ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π°
      сСрвСрная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.
      Он Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Kotlin, ΠΈ особСнно Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Java.

      Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ΄ Android с Kotlin

      ΠΈ

      Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ΄ Android
      с ΠšΠΎΡ‚Π»ΠΈΠ½ΠΎΠΌ
      — это ΠΊΠ½ΠΈΠ³Π° ΠœΠ°Ρ€Ρ†ΠΈΠ½Π° Москала ΠΈ Π˜Π³ΠΎΡ€Ρ Π’ΠΎΠΉΠ΄Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ возмоТности Kotlin Π² контСкстС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android.Π­Ρ‚ΠΎ
      дСмонстрируСт, ΠΊΠ°ΠΊ распространСнныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
      Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС прСимущСства,
      ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, прСдоставляСмыС этим языком.

      Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅

      ΠΈ

      Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
      Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅
      — ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π°, написанная Π ΠΈΠ²Ρƒ Π§Π°ΠΊΡ€Π°Π±ΠΎΡ€Ρ‚ΠΈ, ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Android ΠΈ энтузиастом Kotlin.Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° Π±Ρ‹Π»Π° создана, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ систСму для изучСния Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
      ΠšΠΎΡ‚Π»ΠΈΠ½. ΠœΡ‹ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ всС аспСкты Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Kotlin ΠΈ RxKotlin.
      ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ послСднюю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ вас со Spring framework 5.0 ΠΈ Spring Boot 2.0.
      ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ описаниС примСнСния Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования Π½Π° Android с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin.

      Π§Π΅Ρ€Ρ‚Π΅ΠΆΠΈ ΠšΠΎΡ‚Π»ΠΈΠ½Π°

      ΠΈ

      Π§Π΅Ρ€Ρ‚Π΅ΠΆΠΈ ΠšΠΎΡ‚Π»ΠΈΠ½Π°
      — это ΠΊΠ½ΠΈΠ³Π° Акшая Чордия, Ашиша Π‘Π΅Π»Π°Π³Π°Π»ΠΈ ΠΈ Π₯Π°Ρ€Π΄ΠΈΠΊΠ° Π’Ρ€ΠΈΠ²Π΅Π΄ΠΈ, которая прСдставляСт собой практичСскоС руководство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚
      ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ уровня (Spring Boot, JavaScript), Android, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ
      TornadoFX.Он Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ созданиС прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin Native. Он ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности
      Kotlin Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… тСхнологиях.
      Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Kotlin ΠΈ хотят ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π° Kotlin для
      Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ / Android / ПК / Π ΠΎΠ΄Π½ΠΎΠΉ.

      Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠšΠΎΡ‚Π»ΠΈΠ½

      ΠΈ

      Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠšΠΎΡ‚Π»ΠΈΠ½
      Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠšΠΎΡ‚Π»ΠΈΠ½ ΠœΠ°Ρ€ΠΈΠΎ Ариаса ΠΈ Π ΠΈΠ²Ρƒ Π§Π°ΠΊΡ€Π°Π±ΠΎΡ€Ρ‚ΠΈ.Kotlin ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ популярныС ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅
      тСхничСскиС ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ особСнности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языков. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ваши прилоТСния
      БыстрСС,
      ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Книга ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ А-Π― Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π²
      ΠšΠΎΡ‚Π»ΠΈΠ½,
      Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Arrow для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π½Π° Kotlin.
      ΠœΠ°Ρ€ΠΈΠΎ Ариас — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Arrow, Π° Π ΠΈΠ²Ρƒ Π§Π°ΠΊΡ€Π°Π±ΠΎΡ€Ρ‚ΠΈ — ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ
      Автор Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Kotlin, эта ΠΊΠ½ΠΈΠ³Π° — ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ рСсурс, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅
      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²
      ΠšΠΎΡ‚Π»ΠΈΠ½ ΠΈ Π‘Ρ‚Ρ€Π΅Π»Π°.

      ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ микросСрвисы с Kotlin

      ΠΈ

      ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ микросСрвисы с
      ΠšΠΎΡ‚Π»ΠΈΠ½
      — ΠΊΠ½ΠΈΠ³Π° Π₯ΡƒΠ°Π½Π° Антонио ΠœΠ΅Π΄ΠΈΠ½Ρ‹ ИглСсиаса, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ услуги,
      ΠΈ созданиС Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅, тСстируСмого, экономичного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΡ€ΠΎΡ‡Π΅ ΠΈ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ традиционная Java
      рСализация. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ прСимущСствами использования
      рСактивная ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ прСимущСствами Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти свои услуги Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
      с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния отраслСвых стандартов.Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… NoSQL Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ
      Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ микросСрвисы. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ микросСрвисы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΠ±Π»Π°ΠΊΠΎΠ².
      ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. Π’Ρ‹ создадитС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker для своих микросСрвисов ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡ….
      НаконСц, Π²Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ свои микросСрвисы Π² OpenShift Online.

      ΠŸΠΎΠ²Π°Ρ€Π΅Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° программирования Kotlin

      ΠΈ

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin
      ΠšΡƒΠ»ΠΈΠ½Π°Ρ€Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π°
      Π΅ΡΡ‚ΡŒ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Android с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin 1.1,
      прСдоставлСниС быстрых Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android.
      Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡƒΡ‡Π°Ρ‚ вас микросСрвисам ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ с
      ΠšΠΎΡ‚Π»ΠΈΠ½.
      Π’ дальнСйшСм Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒ свои прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin.
      НаконСц, эта ΠΊΠ½ΠΈΠ³Π° содСрТит Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ пСрСнСсти ΠΊΠΎΠ΄ Java Π½Π° Kotlin ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚
      ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ совмСстим с Java.

      ОсвоСниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android с Kotlin

      ΠΈ

      ΠœΠ°ΡΡ‚Π΅Ρ€ΠΈΠ½Π³
      Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ΄ Android с Kotlin
      начинаСтся с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ΅ прСдставлСниС ΠΎ функциях Kotlin Π² контСкстС Android.
      Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π΅Π΅ API. Π”Π²ΠΈΠ³Π°ΡΡΡŒ дальшС, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ шаги Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ создания ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android.
      Книга ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срСду, Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΡƒΠΊΠ»ΠΎΠ½Π½ΠΎ расти.
      с прилоТСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ….ПозТС ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас с Android Studio IDE, которая ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ.
      Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄ Android. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ программирования Kotlin, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ,
      лямбды, свойства, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, аспСкты бСзопасности, парамСтризация Ρ‚ΠΈΠΏΠΎΠ², тСстированиС,
      ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π² написании ΠΊΠΎΠ΄Π° Kotlin Π² производство. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ
      Π²Ρ‹, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Kotlin Π² любой ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Android.

      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Kotlin Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

      ΠΈ

      Kotlin ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
      ΠΏΡ€ΠΈΠΌΠ΅Ρ€
      ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас со ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Kotlin, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ классы.
      Π’Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Kotlin, создав Ρ‚Ρ€ΠΈ прилоТСния Ρ€Π°Π·Π½ΠΎΠΉ слоТности.
      Π§Ρ‚ΠΎΠ±Ρ‹ быстро Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Android, ΠΌΡ‹ рассмотрим созданиС классичСской ΠΈΠ³Ρ€Ρ‹,
      ВСтрис ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΠšΠΎΡ‚Π»ΠΈΠ½Π΅.НашС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚
      мСссСндТСр, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΉ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ
      взгляд Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сохранСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΉ Π½Π°ΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
      НашС послСднСС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ — Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚ мСста: Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
      API ΠšΠ°Ρ€Ρ‚ Google ΠΈ срСдства Π²Ρ‹Π±ΠΎΡ€Π° мСста.

      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring 5 ΠΈ Kotlin

      ΠΈ

      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring 5 ΠΈ Kotlin
      Π’ этой ΠΊΠ½ΠΈΠ³Π΅ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ с ввСдСния Π² Spring ΠΈ Π΅Π³ΠΎ настройку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin.Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π² ΠΎΡ†Π΅Π½ΠΊΡƒ особСнностСй Π΄ΠΈΠ·Π°ΠΉΠ½Π° вашСго прилоТСния.
      Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Spring (с Spring Boot) вмСстС с Kotlin для создания
      Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ бэкэнд Π² микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ с совмСстной Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π½Π° основС REST,
      ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Project Reactor Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
      Spring Data ΠΈ Spring Cloud для управлСния конфигурациями взаимодСйствия с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ развСртывания ΠΎΠ±Π»Π°ΠΊΠ°.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Spring Security для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ бСзопасности вашСго прилоТСния.
      ΠΏΠ΅Ρ€Π΅Π΄ тСстированиСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JUnit ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ AWS.

      ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования с Kotlin

      ΠΈ

      ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½
      Π£Π·ΠΎΡ€Ρ‹ с ΠšΠΎΡ‚Π»ΠΈΠ½ΠΎΠΌ
      Π—Π°Π΄Π°Ρ‡Π° этой ΠΊΠ½ΠΈΠ³ΠΈ — ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ шаблонов проСктирования Π² ΠšΠΎΡ‚Π»ΠΈΠ½.
      ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ программистам.Книга начинаСтся с ΠΏΠΎΠΊΠ°Π·Π° Π²Π°ΠΌ
      практичСскиС аспСкты Π±ΠΎΠ»Π΅Π΅ ΡƒΠΌΠ½ΠΎΠ³ΠΎ кодирования Π² Kotlin, объясняя Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Kotlin
      синтаксис ΠΈ влияниС шаблонов проСктирования. ΠžΡ‚Ρ‚ΡƒΠ΄Π° Π² ΠΊΠ½ΠΈΠ³Π΅ даСтся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ
      объяснСниС классичСских ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Π΄ΠΈΠ·Π°ΠΉΠ½Π° творчСских, структурных ΠΈ повСдСнчСских сСмСйств,
      ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ
      ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡƒΡ‡Π°Ρ‚ вас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ сопрограммы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ
      ΠΊΠΎΠ΄ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ.К ΠΊΠΎΠ½Ρ†Ρƒ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ смоТСтС эффСктивно Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ
      ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹
      Π½Π° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ обслуТиваСмых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

      ΠŸΠΎΠ²Π°Ρ€Π΅Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠšΠΎΡ‚Π»ΠΈΠ½Π°

      ΠΈ

      ΠšΠΎΡ‚Π»ΠΈΠ½ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚
      Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ²
      by Samuel Urbanowicz ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² слоТныС языковыС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.Он ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр
      ΠΎΠ±Ρ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡ программирования Ρ€Π°Π·Π½ΠΎΠ³ΠΎ уровня слоТности,
      Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Книга состоит ΠΈΠ· Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ²
      это настоящСС
      ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ Π΄Π°Ρ‚ΡŒ пошаговоС объяснСниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ ΠΊ Π½Π΅ΠΉ эффСктивно.
      Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Kotlin ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ JVM,
      ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Android ΠΈ JavaScript.

      Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Kotlin ΠΏΡƒΡ‚Π΅ΠΌ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android

      ΠΈ

      Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Kotlin ΠΏΡƒΡ‚Π΅ΠΌ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android
      ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Eunice Adutwumwaa Obugyei. Π’ этой ΠΊΠ½ΠΈΠ³Π΅ использован ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄,
      Π³Π΄Π΅ ΠΌΡ‹ фокусируСмся Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄ Android, создавая Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ…
      ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ для Android: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Tic-Tac-Toe, Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ Π½Π° основС мСстополоТСния ΠΈ список Π΄Π΅Π».
      заявлСниС.Книга начинаСтся с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС ΠΎ языкС ΠšΠΎΡ‚Π»ΠΈΠ½ ΠΈ Π΅Π³ΠΎ
      API ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап для создания ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android. Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ
      ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ прохоТдСния Π³Π»Π°Π² ΠΈ построСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ…
      ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΡƒΠΊΠ»ΠΎΠ½Π½ΠΎ расти. Книга Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас
      Π² Android Studio IDE, которая ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Android. я
      t ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ программирования Kotlin, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, лямбды, свойства,
      ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, аспСкты бСзопасности ΠΈ парамСтризация Ρ‚ΠΈΠΏΠΎΠ², тСстированиС ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ,
      ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Kotlin Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½.НаконСц, Π²Ρ‹ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· вСсь процСсс
      ΠΎ выпускС вашСго прилоТСния Π² Google Play Store. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
      ΠΊΠ°Π½Π°Π»Ρ‹ распространСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Amazon App Store.

      ОсвоСниС высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin

      ΠΈ

      ОсвоСниС высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin
      Книга начинаСтся с Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… спСцификаций Kotlin, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ
      ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сказываСтся Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ Ρ‚Π΅Ρ…Π½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅
      ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΡƒΠ·ΠΊΠΈΠ΅ мСста Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
      Π”Π°Π»Π΅Π΅ ΠΌΡ‹ рассмотрим ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: оптимизация памяти,
      ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ смотрим Π½Π° ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ
      Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π°. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Kotlin
      ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ качСство вашСй ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹.К ΠΊΠΎΠ½Ρ†Ρƒ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставлСниС ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ… ΠΈ
      Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прилоТСния Π² срСдС Kotlin.

      ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅

      ΠΈ

      ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅
      Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° описываСт Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΡƒ ΠΈ создаСт
      ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ для проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.Β«Learning Concurrency in KotlinΒ» Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹
      ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ рСализация с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΈ упраТнСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅
      Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌΠΈ ΠšΠΎΡ‚Π»ΠΈΠ½Π°. Начиная с ввСдСния Π²
      Kotlin, Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅
      Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для написания ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π° Kotlin.
      Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ
      сопрограммы для написания асинхронных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ совмСстно.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ
      ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅Ρ€Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ
      сопрограммы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ, позволяя Π²Π°ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ.
      Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ создадитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ чтСния RSS
      ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² соотвСтствии с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚Π΅ΠΌΠ°ΠΌΠΈ, Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ Π² ΠΊΠ½ΠΈΠ³Π΅.

      ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с Kotlin

      ΠΈ

      ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ занятиС
      ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin
      Абид Π₯Π°Π½ ΠΈ Π˜Π³ΠΎΡ€ΡŒ ΠšΡƒΡ‡Π΅Ρ€Π΅Π½ΠΊΠΎ.Основная Ρ†Π΅Π»ΡŒ ΠΊΠ½ΠΈΠ³ΠΈ — Π΄Π°Ρ‚ΡŒ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ
      ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Kotlin, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ классы, классы Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ наслСдованиС.
      Он Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² проСктирования ΠΈ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Kotlin
      синтаксис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ
      ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Π΅ классы, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ сопрограммы уровня ΠΏΠ°ΠΊΠ΅Ρ‚Π°
      ΠΈ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ эти ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для сСриализации, рСгулярного выраТСния ΠΈ тСстирования
      Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² этой ΠΊΠ½ΠΈΠ³Π΅. К ΠΊΠΎΠ½Ρ†Ρƒ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ
      Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² обслуТивании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ шаблонами проСктирования Π½Π° Kotlin.

      Kotlin для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с использованиСм Java EE

      ΠΈ

      ΠšΠΎΡ‚Π»ΠΈΠ½ для прСдприятий
      ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Java EE ΠΎΡ‚ Π Π°Π³Ρ…Π°Π²Π΅Π½Π΄Ρ€Ρ‹ Π Π°ΠΎ К., начинаСтся с ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡ€Π°
      Kotlin ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ популярным ΠΈ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.
      языка программирования для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ
      Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Java EE.Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния.
      с использованиСм Java Persistence API (JPA) и Enterprise JavaBeans (EJB),
      Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅Π±-слуТбы RESTful ΠΈ MicroServices. Когда ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ свой ΠΏΡƒΡ‚ΡŒ
      Π³Π»Π°Π²Ρ‹, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³
      инструмСнты для вашСго прилоТСния ΠΈ посмотритС, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния.
      На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, насколько Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ прилоТСния.
      Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅.К ΠΊΠΎΠ½Ρ†Ρƒ этой ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования ΠΈ
      ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kotlin.

      Learn Spring для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android

      ΠΈ

      Learn Spring для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android
      Автор: Π‘. М. ΠœΠΎΡ…ΠΈ Ус Π‘ΡƒΠ½Π½Π°Ρ‚ ΠΈ Π˜Π³ΠΎΡ€ΡŒ ΠšΡƒΡ‡Π΅Ρ€Π΅Π½ΠΊΠΎ расскаТут, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ силовыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Spring Framework для создания Π»Π΅Π³ΠΊΠΈΡ… ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android с использованиСм Kotlin.Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ модулями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Spring AOP, Dependency Injection ΠΈ Inversion of Control, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния с Π»ΡƒΡ‡ΡˆΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ зависимостями. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ модулями Spring Framework, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Spring MVC, Spring Boot ΠΈ Spring.
      Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Π»Π°Π²Ρ‹ Π΅ΡΡ‚ΡŒ практичСскиС упраТнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ свои знания.
      К ΠΊΠΎΠ½Ρ†Ρƒ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android с использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Spring.

      ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ с Kotlin

      ΠΈ

      ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ с Kotlin
      Π§Π°Π½Π΄Ρ€Π° Π‘Π΅Ρ…Π°Ρ€ Наяк, Π ΠΈΠ²Ρƒ Π§Π°ΠΊΡ€Π°Π±ΠΎΡ€Ρ‚ΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ с основ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ…,
      ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² основах ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ
      основы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ΅ ΠΊ рСкурсивному ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡŽ. Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π°, наполнСнная мноТСством ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² структурС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Kotlin Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ. К ΠΊΠΎΠ½Ρ†Ρƒ этой ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ смоТСтС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

      ΠšΠΎΡ‚Π»ΠΈΠ½ иль АсСнкрон Programlama

      Ρ‚Ρ€

      Kotlin ile Asenkron Programlama
      Kotlin ile Asnekron Programlama ΠœΠ΅Ρ…ΠΌΠ΅Ρ‚ Али SICAK Π±Ρ‹Π»Π° написана для ознакомлСния программистов с сопрограммами.Π­Ρ‚ΠΎ пСрвая ΠΈ ΠΏΠΎΠΊΠ° СдинствСнная ΠΊΠ½ΠΈΠ³Π° ΠΎ сопрограммах Π½Π° Ρ‚ΡƒΡ€Π΅Ρ†ΠΊΠΎΠΌ языкС. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, эта ΠΊΠ½ΠΈΠ³Π° для вас. Π’ этой ΠΊΠ½ΠΈΠ³Π΅ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся сопрограммам, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ асинхронного программирования. Он состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй: тСорСтичСской ΠΈ практичСской.

      .ΠžΡΠ½ΠΎΠ²Ρ‹

      — язык программирования Kotlin


      ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ страницу

      Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

      Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ сопрограмм.

      Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

        ΠΈΠΌΠΏΠΎΡ€Ρ‚ kotlinx.coroutines. *
      
      fun main () {
          GlobalScope.launch {// запускаСм Π½ΠΎΠ²ΡƒΡŽ сопрограмму Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ
              delay (1000L) // Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π° 1 сСкунду (Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - мс)
              println ("World!") // ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ послС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ
          }
          println ("Hello,") // основной ΠΏΠΎΡ‚ΠΎΠΊ продолТаСтся, ΠΏΠΎΠΊΠ° сопрограмма задСрТиваСтся
          ΠΠΈΡ‚ΡŒ.sleep (2000L) // Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ основной ΠΏΠΎΡ‚ΠΎΠΊ Π½Π° 2 сСкунды, Ρ‡Ρ‚ΠΎΠ±Ρ‹ JVM Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

        ЗдравствуйтС,
      ΠœΠΈΡ€!
        

      По сути, сопрограммы — это Π»Π΅Π³ΠΊΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ.
      Они Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ с запуском построитСля сопрограмм Π² контСкстС Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ CoroutineScope.
      Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ запускаСм Π½ΠΎΠ²ΡƒΡŽ сопрограмму Π² GlobalScope, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ врСмя ΠΆΠΈΠ·Π½ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ
      сопрограмма ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ всСго прилоТСния.

      Π’Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Π·Π°ΠΌΠ΅Π½ΠΈΠ²
      GlobalScope.launch {...} с ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ {...} ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ (...) с Thread.sleep (...) .
      ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ (Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ kotlin.concurrent.thread ).

      Если Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π·Π°ΠΌΠ΅Π½Ρ‹ GlobalScope.launch Π½Π° thread , компилятор выдаст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

        Ошибка: Kotlin: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приостановки Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· сопрограммы ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приостановки
        

      Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция приостановки , которая Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ, Π½ΠΎ приостанавливаСт
      сопрограмма, ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· сопрограммы.

      Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠΈΡ€ΠΎΠ²

      ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ delay (...) ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Thread.sleep (...) Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
      Π›Π΅Π³ΠΊΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚, Π° ΠΊΠ°ΠΊΠΎΠΉ Π½Π΅Ρ‚.
      Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструктора сопрограмм runBlocking:

        ΠΈΠΌΠΏΠΎΡ€Ρ‚ kotlinx.coroutines. *
      
      fun main () {
          GlobalScope.launch {// запускаСм Π½ΠΎΠ²ΡƒΡŽ сопрограмму Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ
              Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (1000Π»)
              println ("ΠœΠΈΡ€!")
          }
          println ("Hello,") // здСсь сразу ΠΆΠ΅ продолТаСтся основной ΠΏΠΎΡ‚ΠΎΠΊ
          runBlocking {// Π½ΠΎ это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ основной ΠΏΠΎΡ‚ΠΎΠΊ
              Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (2000Π») //... ΠΏΠΎΠΊΠ° ΠΌΡ‹ задСрТиваСмся Π½Π° 2 сСкунды, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ JVM
          }
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Π½ΠΎ Π² этом ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°.
      Основной ΠΏΠΎΡ‚ΠΎΠΊ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ runBlocking , Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ сопрограмма Π²Π½ΡƒΡ‚Ρ€ΠΈ runBlocking .

      Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ идиоматичСским способом, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ runBlocking для пСрСноса
      Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

        ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ котлинкс.сопрограммы. *
      
      fun main () = runBlocking  {// запускаСм ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ сопрограмму
          GlobalScope.launch {// запускаСм Π½ΠΎΠ²ΡƒΡŽ сопрограмму Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ
              Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (1000Π»)
              println ("ΠœΠΈΡ€!")
          }
          println ("Hello,") // основная сопрограмма Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ продолТаСтся здСсь
          delay (2000L) // Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π° 2 сСкунды, Ρ‡Ρ‚ΠΎΠ±Ρ‹ JVM Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      Π—Π΄Π΅ΡΡŒ runBlocking {...} Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для запуска основной сопрограммы Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня.ΠœΡ‹ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Unit , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ сформированная функция main Π² Kotlin Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Unit .

      Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ способ написания ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов для приостановки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

        class MyTest {
          @ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°
          fun testMySuspendingFunction () = runBlocking  {
              // здСсь ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приостановки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ любой ΡΡ‚ΠΈΠ»ΡŒ утвСрТдСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ нравится
          }
      }
        

      Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π° врСмя, ΠΏΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ другая сопрограмма — Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.Π”Π°Π²Π°ΠΉΡ‚Π΅ явно
      ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ (Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ), ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅:

        ΠΈΠΌΠΏΠΎΡ€Ρ‚ kotlinx.coroutines. *
      
      fun main () = runBlocking {
      // sampleStart
          val job = GlobalScope.launch {// запускаСм Π½ΠΎΠ²ΡƒΡŽ сопрограмму ΠΈ сохраняСм ссылку Π½Π° Π΅Π΅ Job
              Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (1000Π»)
              println ("ΠœΠΈΡ€!")
          }
          println ("ΠŸΡ€ΠΈΠ²Π΅Ρ‚,")
          job.join () // ΠΆΠ΄Π΅ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ сопрограммы
      // sampleEnd
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Π½ΠΎ ΠΊΠΎΠ΄ основной сопрограммы Π½Π΅ привязан ΠΊ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
      фоновая Ρ€Π°Π±ΠΎΡ‚Π° Π² любом случаС. Намного Π»ΡƒΡ‡ΡˆΠ΅.

      Для практичСского использования сопрограмм Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Ρ‚ΡŒ.
      Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ GlobalScope.launch , ΠΌΡ‹ создаСм сопрограмму Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π»Π΅Π³ΠΊΠΈΠΉ, ΠΎΠ½ всС ΠΆΠ΅
      потрСбляСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСсурсы памяти Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹. Если ΠΌΡ‹ Π·Π°Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ссылку Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ
      сопрограмма, ΠΎΠ½Π° всС Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΊΠΎΠ΄ Π² сопрограммС зависаСт (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ
      Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° слишком Π΄ΠΎΠ»Π³ΠΎ), Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ запустили слишком ΠΌΠ½ΠΎΠ³ΠΎ сопрограмм ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ?
      ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ссылки Π½Π° всС Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ сопрограммы ΠΈ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ Ρ‡Ρ€Π΅Π²Π°Ρ‚Π° ошибками.

      Π•ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅. Π’ нашСм ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ структурированный ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ.
      ВмСсто запуска сопрограмм Π² GlobalScope, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ (ΠΏΠΎΡ‚ΠΎΠΊΠΈ всСгда Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅),
      ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сопрограммы Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ области выполняСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

      Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ основная функция , которая прСвращаСтся Π² сопрограмму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ построитСля сопрограмм runBlocking.
      ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ сопрограмм, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ runBlocking , добавляСт экзСмпляр CoroutineScope Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ своСго Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°.
      ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сопрограммы Π² этой области Π±Π΅Π· явного присоСдинСния ΠΊ , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ
      внСшняя сопрограмма ( runBlocking Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅) Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ всС сопрограммы
      Π² своСм объСмС полная.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

        ΠΈΠΌΠΏΠΎΡ€Ρ‚ kotlinx.coroutines. *
      
      fun main () = runBlocking {// this: CoroutineScope
          launch {// запускаСм Π½ΠΎΠ²ΡƒΡŽ сопрограмму Π² Ρ€Π°ΠΌΠΊΠ°Ρ… runBlocking
              Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (1000Π»)
              println ("ΠœΠΈΡ€!")
          }
          println ("ΠŸΡ€ΠΈΠ²Π΅Ρ‚,")
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ области сопрограмм, прСдоставляСмой Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ сборщиками, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
      ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ coroutineScope.Он создаСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ сопрограммы ΠΈ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡΡ всС Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты.

      runBlocking ΠΈ coroutineScope ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΆΠ΄ΡƒΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ своСго Ρ‚Π΅Π»Π° ΠΈ всСх Π΅Π³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов.
      ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ runBlocking Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ для оТидания,
      Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ coroutineScope просто приостанавливаСтся, освобоТдая Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ.
      Из-Π·Π° этой Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ runBlocking являСтся ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π° coroutineScope — Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ приостановки.

      Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

        ΠΈΠΌΠΏΠΎΡ€Ρ‚ kotlinx.coroutines. *
      
      fun main () = runBlocking {// this: CoroutineScope
          launch {
              Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (200Π»)
              println ("Π—Π°Π΄Π°Ρ‡Π° ΠΎΡ‚ runBlocking")
          }
          
          coroutineScope {// Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ сопрограммы
              launch {
                  Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (500Π»)
                  println (Β«Π—Π°Π΄Π°Ρ‡Π° ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ запуска»)
              }
          
              Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (100Π»)
              println ("Π—Π°Π΄Π°Ρ‡Π° ΠΈΠ· области сопрограммы") // Π­Ρ‚Π° строка Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ запуском
          }
          
          println ("ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия сопрограммы Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°") // Π­Ρ‚Π° строка Π½Π΅ пСчатаСтся, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ запуск
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ сразу послС сообщСния Β«Π—Π°Π΄Π°Ρ‡Π° ΠΈΠ· области сопрограммы» (Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ запуска)
      Β«Task from runBlockingΒ» выполняСтся ΠΈ пСчатаСтся, хотя coroutineScope Π΅Ρ‰Π΅ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.

      Π”Π°Π²Π°ΠΉΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ launch {...} Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Когда Ρ‚Ρ‹
      Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Β«Π˜Π·Π²Π»Π΅Ρ‡ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ» для этого ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ suspend .
      Π­Ρ‚ΠΎ ваша пСрвая функция приостановки .Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ приостановки ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ сопрограмм
      ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ,
      ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приостановки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, delay Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сопрограммы.

        ΠΈΠΌΠΏΠΎΡ€Ρ‚ kotlinx.coroutines. *
      
      fun main () = runBlocking {
          запуститС {doWorld ()}
          println ("ΠŸΡ€ΠΈΠ²Π΅Ρ‚,")
      }
      
      // это ваша пСрвая функция приостановки
      suspend fun doWorld () {
          Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (1000Π»)
          println ("ΠœΠΈΡ€!")
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      Но Ρ‡Ρ‚ΠΎ, Ссли извлСчСнная функция содСрТит ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ сопрограмм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ области?
      Π’ этом случаС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° suspend для ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нСдостаточно. Π”Π΅Π»Π°Π΅ΠΌ doWorld Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ
      ΠœΠ΅Ρ‚ΠΎΠ΄ Π½Π° CoroutineScope являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΎΠ½ Π½Π΅ всСгда ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ API Π±ΠΎΠ»Π΅Π΅ понятным.
      Π˜Π΄ΠΈΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ явный CoroutineScope Π² качСствС поля Π² классС, содСрТащСм Ρ†Π΅Π»Π΅Π²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
      ΠΈΠ»ΠΈ нСявный, ΠΊΠΎΠ³Π΄Π° внСшний класс Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ CoroutineScope .Π’ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CoroutineScope (coroutineContext), Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ структурно нСбСзопасСн.
      ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ большС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ объСм выполнСния этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Волько частныС API ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот конструктор.

      Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

        ΠΈΠΌΠΏΠΎΡ€Ρ‚ kotlinx.coroutines. *
      
      fun main () = runBlocking {
          repeat (100_000) {// запускаСм ΠΌΠ½ΠΎΠ³ΠΎ сопрограмм
              launch {
                  Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (5000Π»)
                  Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ(".")
              }
          }
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      ЗапускаСт 100 тыс. Π‘ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈ Ρ‡Π΅Ρ€Π΅Π· 5 сСкунд каТдая сопрограмма ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ.

      Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ это с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ. Π§Ρ‚ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π±Ρ‹? (Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, ваш ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти)

      Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ запускаСт Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ сопрограмму Π² GlobalScope, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Β«Π― сплю» Π΄Π²Π°ΠΆΠ΄Ρ‹ Π² сСкунду, Π° Π·Π°Ρ‚Π΅ΠΌ
      возвращаСтся ΠΈΠ· основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ послС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ:

        ΠΈΠΌΠΏΠΎΡ€Ρ‚ kotlinx.coroutines. *
      
      fun main () = runBlocking {
      // sampleStart
          GlobalScope.launch {
              ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ (1000) {я ->
                  println ("Я сплю, $ i ...")
                  Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (500Π»)
              }
          }
          delay (1300L) // просто Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ послС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ
      // sampleEnd
      }
        

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь.

      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ строки ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ:

        Я сплю 0 ...
      Я сплю 1 ...
      Я сплю 2 ...
        

      АктивныС сопрограммы, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Π² GlobalScope, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ процСсса.Они ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ².

      .

      Π‘ΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — язык программирования Kotlin


      ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ страницу

      Π’ этом руководствС ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ использованиС Kotlin для ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

      Π­Ρ‚ΠΎ руководство ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ ΠΊΠ°ΠΊ для ΡΠΎΡ€Π΅Π²Π½ΡƒΡŽΡ‰ΠΈΡ…ΡΡ программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ использовали Kotlin, Ρ‚Π°ΠΊ ΠΈ для
      для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Kotlin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ Π½Π΅ участвовали Π² сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.
      Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π°Π²Ρ‹ΠΊΠΈ программирования.

      ΠšΠΎΠ½ΠΊΡƒΡ€ΡΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Kotlin

      ΠšΠΎΠ½ΠΊΡƒΡ€ΡΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
      это ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ спорт, Π³Π΄Π΅ участники ΠΏΠΈΡˆΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ…
      алгоритмичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ Π² ТСстких ограничСниях.ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ простых, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
      любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ нСбольшого ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π΄ΠΎ слоТных, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… знания
      ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. Π₯отя ΠΎΠ½ Π½Π΅ Π±Ρ‹Π» ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для сорСвнований
      программирования, Kotlin, кстати, Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для этой области, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ количСство шаблонов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅
      программисту Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΡ‡Ρ‚ΠΈ Π΄ΠΎ уровня, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ динамичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ
      языки сцСнариСв, имСя инструмСнты ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка.

      Π‘ΠΌ. Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с IntelliJ IDEA, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.
      срСда для ΠšΠΎΡ‚Π»ΠΈΠ½Π°. Π’ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ создаСтся ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹
      написано Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ исходном Ρ„Π°ΠΉΠ»Π΅.

      Рассмотрим ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

      Codeforces
      Π Π°ΡƒΠ½Π΄ 555 Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ 26 апрСля для 3-Π³ΠΎ Π΄ΠΈΠ²ΠΈΠ·ΠΈΠΎΠ½Π°, Π° это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π³ΠΎ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ Π±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.
      Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ссылку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.
      Бамая простая Π·Π°Π΄Π°Ρ‡Π° Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ —
      ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° A: доступныС Π½ΠΎΠΌΠ΅Ρ€Π°.Он просит Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, описанный Π² постановкС Π·Π°Π΄Π°Ρ‡ΠΈ.

      ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Π±Ρ‹ Π΅Π΅ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ с создания исходного Ρ„Π°ΠΉΠ»Π° Kotlin с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. A.kt ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚.
      Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΊ:

      ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f (x) Ρ‚Π°ΠΊ: ΠΌΡ‹ прибавляСм 1 ΠΊ x, Ρ‚ΠΎΠ³Π΄Π°, ΠΏΠΎΠΊΠ° Π΅ΡΡ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ноль
      Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ числС этот ноль ΡƒΠ±ΠΈΡ€Π°Π΅ΠΌ.

      Kotlin — это ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ малоизвСстный язык, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ стили программирования Π±Π΅Π·
      подталкивая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ….ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π°ΠΊΠΎΠΉ Kotlin
      Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ хвостовая рСкурсия:

        tailrec fun removeZeroes (x: Int): Int =
          if (x% 10 == 0) removeZeroes (x / 10) else x
          
      fun f (x: Int) = removeZeroes (x + 1)
        

      Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ
      Ρ†ΠΈΠΊΠ» while ΠΈ измСняСмыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹
      var:

        fun f (x: Int): Int {
          var cur = x + 1
          Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ (cur% 10 == 0) cur / = 10
          Π²Π΅Ρ€Π½ΠΈΡΡŒ
      }
        

      Π’ΠΈΠΏΡ‹ Π² Kotlin Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… мСстах ΠΈΠ·-Π·Π° повсСмСстного использования Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ объявлСниС всС Π΅Ρ‰Π΅ ΠΈΠΌΠ΅Π΅Ρ‚
      Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ статичСский Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ извСстСн ΠΏΡ€ΠΈ компиляции.

      Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая считываСт Π²Π²ΠΎΠ΄ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.
      запрос — для вычислСния количСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ производятся ΠΏΡ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ
      Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ число n , Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π² стандартном Π²Π²ΠΎΠ΄Π΅.

      По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Kotlin Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° JVM ΠΈ прСдоставляСт прямой доступ ΠΊ Π±ΠΎΠ³Π°Ρ‚ΠΎΠΉ ΠΈ эффСктивной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ с
      ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ массивы динамичСского Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ( ArrayList ),
      ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ Π½Π° основС Ρ…Π΅ΡˆΠ΅ΠΉ ( HashMap / HashSet ), упорядочСнныС ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ Π½Π° основС Π΄Π΅Ρ€Π΅Π²Π° ( TreeMap / TreeSet ) ΠΈ Ρ‚. Π΄.Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ…ΡΡˆ-Π½Π°Π±ΠΎΡ€ Ρ†Π΅Π»Ρ‹Ρ… чисСл для отслСТивания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ достигнуты ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f ,
      прямой ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

        fun main () {
          var n = readLine () !!. toInt () // считываСм Ρ†Π΅Π»ΠΎΠ΅ число ΠΈΠ· Π²Π²ΠΎΠ΄Π°
          val достигнуто = HashSet  () // измСняСмый Ρ…ΡΡˆ-Π½Π°Π±ΠΎΡ€
          while (completed.add (n)) n = f (n) // итСрация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f
          println (completed.size) // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π²Ρ‹Π²ΠΎΠ΄
      }
        

      ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС Kotlin’s
      ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ утвСрТдСния !!
      послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ readLine ().Ѐункция Kotlin readLine () ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°
      обнуляСмый Ρ‚ΠΈΠΏ
      Π‘Ρ‚Ρ€ΠΎΠΊΠ°? ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ null Π² ΠΊΠΎΠ½Ρ†Π΅ Π²Π²ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ явно Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ
      случай отсутствия Π²Π²ΠΎΠ΄Π°.

      НСт нСобходимости ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ случай Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Π²ΠΎΠ΄Π° Π² ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.
      Π’ ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Π²ΠΎΠ΄Π° всСгда Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½, ΠΈ фактичСский Π²Π²ΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒΡΡ ΠΎΡ‚
      входная спСцификация Π² постановкС Π·Π°Π΄Π°Ρ‡ΠΈ.Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ утвСрТдСния !! ΠΏΠΎ сути —
      ΠΎΠ½ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ входная строка присутствуСт, ΠΈ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅
      String.toInt ()
      функция Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли входная строка Π½Π΅ являСтся Ρ†Π΅Π»Ρ‹ΠΌ числом.

      ВсС ΠΎΠ½Π»Π°ΠΉΠ½-сорСвнования ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ написанный ΠΊΠΎΠ΄, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ
      слуТСбныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ вашСго фактичСского Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
      Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ.Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ Π² качСствС шаблона для своих Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ
      ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для чтСния Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ:

        ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ readLn () = readLine () !!
      ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ readInt () = readLn (). toInt ()
      // ΠΈ Ρ‚.Π΄. для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π±Ρ‹ использовали Π² своих Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ…
        

      ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС здСсь ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° видимости private .
      Π₯отя концСпция ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° видимости Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° для ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования,
      ΠΎΠ½ позволяСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° основС
      ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ шаблон Π±Π΅Π· получСния ошибки ΠΈΠ·-Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… объявлСний Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.

      Для Π±ΠΎΠ»Π΅Π΅ слоТных Π·Π°Π΄Π°Ρ‡ пригодится ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Kotlin с коллСкциями.
      ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ шаблон ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² ΠΏΠ»Π°Π²Π½ΠΎΠ΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… свСрху Π²Π½ΠΈΠ· ΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ
      Ρ‚Ρ€ΡƒΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄. НапримСр,
      ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° B: ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ
      Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ простого ΠΆΠ°Π΄Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² этом стилС Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΎΠΉ измСняСмой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

        fun main () {
          // Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π²Π²ΠΎΠ΄
          val n = readLine () !!.toInt ()
          val s = readLine () !!
          val fl = readLine () !!. split ("") .map {it.toInt ()}
          // опрСдСляСм Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f
          fun f (c: Char) = '0' + fl [c - '1']
          // ΠΆΠ°Π΄Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ послСдний индСксы
          val i = s.indexOfFirst {c -> f (c)> c}
              .takeIf {it> = 0}?: s.length
          val j = s.withIndex (). indexOfFirst {(j, c) -> j> i && f (c)  = 0}?: s.length
          // составляСм ΠΈ пишСм ΠΎΡ‚Π²Π΅Ρ‚
          val ans =
              s.substring (0, i) +
              с.substring (i, j) .map {c -> f (c)} .joinToString ("") +
              s.substring (j)
          println (ans)
      }
        

      Π’ этом ΠΏΠ»ΠΎΡ‚Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Kotlin, ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
      Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ elvis ?:
      ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ
      Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΠ΄ΠΈΠΎΠΌΡ‹, ΠΊΠ°ΠΊ Β«ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли ΠΎΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½ΡƒΒ» с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ ΠΈ понятным
      Ρ‚Π°ΠΊΠΈΠ΅ выраТСния, ΠΊΠ°ΠΊ .takeIf {it> = 0}?: s.length , Π½ΠΎ с Kotlin Π²ΠΏΠΎΠ»Π½Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСняСмыС
      ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ Π² ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ стилС.

      Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ,
      Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ список Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ чтСния Π²Π²ΠΎΠ΄Π°:

        ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ readLn () = readLine () !! // строка строки
      ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ readInt () = readLn (). toInt () // ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ int
      ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ readStrings () = readLn (). split ("") // список строк
      ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ readInts () = readStrings (). map {it.toInt ()} // список Ρ†Π΅Π»Ρ‹Ρ…
        

      Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° для чтСния Π²Π²ΠΎΠ΄Π° становится ΠΏΡ€ΠΎΡ‰Π΅, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдя Π·Π° Π²Π²ΠΎΠ΄ΠΎΠΌ
      спСцификация Π² постановкС Π·Π°Π΄Π°Ρ‡ΠΈ построчно:

        // Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π²Π²ΠΎΠ΄
          Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ n = readInt ()
          val s = readLn ()
          val fl = readInts ()
        

      ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ принято Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, Ρ‡Π΅ΠΌ
      Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ программирования, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ написан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² дальнСйшСм.Однако эти ΠΈΠΌΠ΅Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ всС Π΅Ρ‰Π΅ мнСмоничСскиС — a для массивов,
      i , j ΠΈ Ρ‚. Π”. Для индСксов, r ΠΈ c для Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² строк ΠΈ столбцов Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, x ΠΈ y для ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΈ Ρ‚. Π”.
      Для Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π°, Ρ‡Ρ‚ΠΎ ΠΈ Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.
      Однако Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большСго количСства ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ использованию Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ…, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… пояснСний
      ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

      Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ совСты ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

      Π—Π°Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ программирования часто ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Π²Π²ΠΎΠ΄:

      ΠŸΠ΅Ρ€Π²Π°Ρ строка Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… содСрТит Π΄Π²Π° Ρ†Π΅Π»Ρ‹Ρ… числа n ΠΈ k

      Π’ Kotlin эту строку ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ
      дСкларация ΠΎ Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ
      ΠΈΠ· списка Ρ†Π΅Π»Ρ‹Ρ… чисСл:

      ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JVM java.util.Scanner класс для Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠ΅Π½Π΅Π΅ структурированных
      Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹. Kotlin Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ JVM, поэтому ΠΈΡ… использованиС
      СстСствСнно Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅. Однако ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ java.util.Scanner Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. На самом Π΄Π΅Π»Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π±ΠΎΡ€
      10 5 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ†Π΅Π»Ρ‹Ρ… чисСл с Π½ΠΈΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ 2-сСкундный Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π»ΠΈΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ простой Kotlin’s
      split ("") .map {it.toInt ()} Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ.

      НаписаниС Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° Kotlin ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ просто с
      println (…)
      Π·Π²ΠΎΠ½ΠΊΠΈ ΠΈ использованиС Kotlin’s
      строковыС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.Однако слСдуСт ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅
      содСрТит порядка 10 5 строк ΠΈ Π±ΠΎΠ»Π΅Π΅. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСства Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² println происходит слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹Π²ΠΎΠ΄
      Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅ автоматичСски сбрасываСтся послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.
      Π‘ΠΎΠ»Π΅Π΅ быстрый способ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ строк ΠΈΠ· массива ΠΈΠ»ΠΈ списка — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
      функция joinToString ()
      с "\ n" Π² качСствС раздСлитСля, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

        println (a.joinToString ("\ n")) // ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива / списка ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкой
        

      Kotlin Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π·Π½Π°ΡŽΡ‚ Java.ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ прСдставлСн Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ страницС сравнСния.
      ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис Kotlin для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ прямо Π²
      справочный Ρ€Π°Π·Π΄Π΅Π» Π²Π΅Π±-сайта, начиная с Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ синтаксиса.

      IDEA ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный
      ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ Java Π² Kotlin.
      Π•Π³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ люди, Π·Π½Π°ΠΊΠΎΠΌΡ‹Π΅ с Java, для изучСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… синтаксичСских конструкций Kotlin, Π½ΠΎ ΠΎΠ½
      Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½, ΠΈ всС ΠΆΠ΅ стоит ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Kotlin ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ
      ΠšΠΎΡ‚Π»ΠΈΠ½ΡΠΊΠΈΠ΅ ΠΈΠ΄ΠΈΠΎΠΌΡ‹.

      ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ рСсурс для изучСния синтаксиса Kotlin ΠΈ API стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Kotlin:
      ΠšΠΎΡ‚Π»ΠΈΠ½ Коанс.

      .

  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *