{"id":348622,"date":"2023-06-10T21:02:20","date_gmt":"2023-06-10T21:02:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=348622"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=348622","title":{"rendered":"<span>\u041a\u0430\u043a \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0432 android automation (\u0447\u0430\u0441\u0442\u044c 1 \u2014 Kotlin \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430)<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zb\/0y\/58\/zb0y58qo5h0uwpxy0j8s73l6o8m.jpeg\" alt=\"Let's sniff kotlin\" data-src=\"https:\/\/habrastorage.org\/webt\/zb\/0y\/58\/zb0y58qo5h0uwpxy0j8s73l6o8m.jpeg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>Let&#8217;s sniff kotlin<\/figcaption><\/div>\n<\/figure>\n<p> \u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430\u0445 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0433\u0430\u0439\u0434\u043e\u0432, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e. \u041c\u043d\u043e\u0433\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0439 \u0437\u0430\u0442\u0435\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043c\u0435\u0441\u043b\u0430. <\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u0430 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 (Espresso) \u0438 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c (Kaspresso, Ultron), \u0430 \u043d\u0435 \u0432\u043e\u0442 \u044d\u0442\u0438 \u0432\u0430\u0448\u0438 appium&#8217;\u044b. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u043a\u0438\u043b\u043b\u043e\u0432 \u0438 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u043d\u0430 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 (\u0435\u0441\u043b\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a \u0432\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435), \u043d\u043e \u0442\u043e \u043c\u043e\u0435 \u0438\u043c\u0445\u043e.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u0430 \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0437\u043d\u0430\u044e\u0442 \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0443\u0442\u044c \u0432 \u0430\u043d\u0434\u0440\u043e\u0438\u0434 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0443 \u043a\u043e\u0433\u043e \u043d\u0435\u0442 \u0437\u043d\u0430\u043d\u0438\u0439 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Kotlin.<\/p>\n<\/th>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043a \u0434\u0435\u043b\u0443 \u0438 \u043e\u0431\u0441\u0443\u0434\u0438\u043c, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0443\u0442\u0438 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c.<\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u0431\u0430\u0437\u0430-\u0431\u0430\u0437, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0432\u043e\u0438\u0442\u044c &#8212; \u044d\u0442\u043e \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f kotlin. \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 java? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 kotlin \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0442\u0435\u043a \u043d\u0430 \u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<br \/> Kotlin \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Java, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Java \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0433\u0447\u0435 \u043e\u0441\u0432\u043e\u0438\u0442\u044c Kotlin. \u041c\u043d\u043e\u0433\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0432 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438 kotlin \u0431\u0443\u0434\u0443\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b \u0438 \u043f\u043e\u0439\u0434\u0443\u0442 \u043f\u0440\u043e\u0449\u0435. \u041d\u043e \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u0438\u043b\u0438 \u043e\u043f\u044b\u0442\u0430 \u043d\u0435\u0442, \u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0433\u043e\u0432\u043e\u0440. \u0412\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u0434\u043e\u043b\u0436\u043d\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u0438 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u0438.<\/p>\n<p>&#171;\u041d\u0443, \u0432\u043e\u0442, kotlin&#8230; \u0422\u0430\u043c \u0436\u0435 \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e, \u0447\u0442\u043e \u0443\u0447\u0438\u0442\u044c &#8212; \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e&#187;. \u0422\u0430\u043a\u0438\u0435 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u044f \u0441\u043b\u044b\u0448\u0430\u043b \u043d\u0438 \u0440\u0430\u0437 \u0438 \u043d\u0438 \u0434\u0432\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u043e\u0442 kotlin core, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u0435\u043d.<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/p>\n<\/li>\n<li>\n<p>\u0426\u0438\u043a\u043b\u044b<\/p>\n<\/li>\n<li>\n<p>\u0421\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b<\/p>\n<\/li>\n<li>\n<p>Nullable \u0442\u0438\u043f\u044b<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432<\/p>\n<\/li>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441\u044b, \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b, \u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e this<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e override<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e super<\/p>\n<\/li>\n<li>\n<p>Getter\/Setter<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/p>\n<\/li>\n<li>\n<p>Data class<\/p>\n<\/li>\n<li>\n<p>Nested, Inner \u043a\u043b\u0430\u0441\u0441\u044b<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/p>\n<\/li>\n<li>\n<p>\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b<\/p>\n<\/li>\n<li>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441<\/p>\n<\/li>\n<li>\n<p>Companion object<\/p>\n<\/li>\n<li>\n<p>is, as \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>Enum \u043a\u043b\u0430\u0441\u0441<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 Kotlin (Mutable, read-only)<\/p>\n<\/li>\n<li>\n<p>Set, List, Map, Sequence + \u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438: \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u043f\u0435\u0440\u0435\u0431\u043e\u0440<\/p>\n<\/li>\n<li>\n<p>Generics<\/p>\n<\/li>\n<li>\n<p>\u041b\u044f\u043c\u0431\u0434\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430<\/p>\n<\/li>\n<li>\n<p>Scope-\u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430, \u0441\u043f\u0438\u0441\u043e\u0447\u0435\u043a \u043d\u0435\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u043e\u0434 \u043d\u0438\u0445. \u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043a\u043e\u0434\u0435 \u0432\u0430\u0448\u0438\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c\u0438, \u0430 \u043d\u0435 \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u0432 \u0441\u0432\u043e\u0438 \u0442\u0435\u0441\u0442\u044b, \u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0448 \u0432\u044b\u0431\u043e\u0440.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0443\u043d\u043a\u0442:<\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 val (\u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f) \u0438 var (\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f).<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0438\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043f\u043e\u0437\u0436\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 init.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 const.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e lateinit \u0434\u043b\u044f \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043b\u0435\u0433\u0430\u0442.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">val name: String = \"John\" \/\/ \u041d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f var age: Int = 25 \/\/ \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f  companion object {     const val PI = 3.14159 \/\/ \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 }  lateinit var lazyVariable: String \/\/ \u041e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f  val userName: String by lazy { getName() } \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 <\/code><\/pre>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 if, else if \u0438 else \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u043e\u0434\u0430 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 when \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 in \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435 when.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 when \u0432 Kotlin \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438.<\/p>\n<pre><code class=\"kotlin\">val num = 10  if (num > 0) {     println(\"\u0427\u0438\u0441\u043b\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435\") } else if (num &lt; 0) {     println(\"\u0427\u0438\u0441\u043b\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435\") } else {     println(\"\u0427\u0438\u0441\u043b\u043e \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e\") }  val result = when (num) {     in 1..10 -> \"\u0427\u0438\u0441\u043b\u043e \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 1 \u0434\u043e 10\"     0 -> \"\u0427\u0438\u0441\u043b\u043e \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e\"     else -> \"\u0427\u0438\u0441\u043b\u043e \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b\" } println(result) <\/code><\/pre>\n<p><strong>\u0426\u0438\u043a\u043b\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0446\u0438\u043a\u043b for \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443 \u0438\u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u043e\u0432 while \u0438 do-while \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u043a\u043e\u0434\u0430 \u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b break \u0438 continue \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0446\u0438\u043a\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">for (i in 1..5) {     println(i) }  var i = 1 while (i &lt;= 5) {     println(i)     i++ }  i = 1 do {     println(i)     i++ } while (i &lt;= 5) <\/code><\/pre>\n<p><strong>\u0421\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u043c\u0438 \u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 Java (\u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0438 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435) \u2013 \u0432 Kotlin \u043d\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u0441\u0435 \u0442\u0438\u043f\u044b \u2013 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0435 (\u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435)).<\/p>\n<\/li>\n<\/ul>\n<p>String<br \/> Long\/Int\/Short\/Byte<br \/> Double\/Float<br \/> Char<br \/> Boolean<\/p>\n<ul>\n<li>\n<p>\u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0442\u0430\u043a\u0438\u043c \u0442\u0438\u043f\u043e\u043c.<\/p>\n<\/li>\n<\/ul>\n<p><strong>Nullable \u0442\u0438\u043f\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 nullable \u0442\u0438\u043f\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 (?.) \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0438 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 nullable \u0442\u0438\u043f\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 (!!) \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f null.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">var nullableValue: String? = \"Nullable\" nullableValue = null \/\/ \u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c `null` nullable \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439  val length = nullableValue?.length \/\/ \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 `length`, \u0432\u0435\u0440\u043d\u0435\u0442 `null`, \u0435\u0441\u043b\u0438 `nullableValue` \u0440\u0430\u0432\u043d\u043e `null`  val uppercaseValue = nullableValue!!.toUpperCase() \/\/ \u0423\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043e \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438, \u0432\u044b\u0437\u043e\u0432 `toUpperCase()` \u0435\u0441\u043b\u0438 `nullableValue` \u043d\u0435 \u0440\u0430\u0432\u043d\u043e `null` <\/code><\/pre>\n<p><strong>\u041c\u0430\u0441\u0441\u0438\u0432<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">val numbers = arrayOf(1, 2, 3, 4, 5) \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b  val names = arrayOf(\"John\", \"Mike\", \"Sarah\") \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441\u0442\u0440\u043e\u043a  val values = intArrayOf(1, 2, 3, 4, 5) \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b  println(numbers[0]) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 (1)  numbers[1] = 10 \/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430 10 <\/code><\/pre>\n<p><strong>\u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 fun.<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">fun greet(name: String) {     println(\"\u041f\u0440\u0438\u0432\u0435\u0442, $name!\") }  greet(\"John\") \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u041f\u0440\u0438\u0432\u0435\u0442, John!\"  fun addNumbers(a: Int, b: Int): Int {     return a + b }  val sum = addNumbers(5, 3) \/\/ sum = 8  fun multiplyNumbers(a: Int, b: Int = 2): Int {     return a * b }  val result = multiplyNumbers(4) \/\/ result = 8 <\/code><\/pre>\n<p><strong>\u041a\u043b\u0430\u0441\u0441\u044b, \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b, \u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u044b \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u0432, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435, \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 object \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class Person(val name: String, val age: Int) {     fun introduce() {         println(\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 $name \u0438 \u043c\u043d\u0435 $age \u043b\u0435\u0442\")     } }  val person = Person(\"John\", 25) person.introduce() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 John \u0438 \u043c\u043d\u0435 25 \u043b\u0435\u0442\"  class Car(val brand: String, val model: String) {     constructor(brand: String) : this(brand, \"Unknown\") }  val car = Car(\"Toyota\") println(car.model) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"Unknown\"  object MathUtils {     fun square(number: Int): Int {         return number * number     } }  val squaredValue = MathUtils.square(5) \/\/ squaredValue = 25 <\/code><\/pre>\n<p><strong>\u041d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e super \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u043a\u043b\u0430\u0441\u0441\u0443 \u0438\u0437 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">open class Animal(val name: String) {     fun sleep() {         println(\"$name \u0441\u043f\u0438\u0442\")     } }  class Cat(name: String) : Animal(name) {     fun meow() {         println(\"$name \u043c\u044f\u0443\u043a\u0430\u0435\u0442\")     } }  val cat = Cat(\"Tom\") cat.sleep() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"Tom \u0441\u043f\u0438\u0442\" cat.meow() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"Tom \u043c\u044f\u0443\u043a\u0430\u0435\u0442\" <\/code><\/pre>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e this<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 this \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f this, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u0438\u043c\u0435\u043d \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class Person(val name: String) {     fun introduce() {         println(\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 $name\")     }      fun changeName(newName: String) {         this.name = newName     } }  val person = Person(\"John\") person.introduce() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 John\" person.changeName(\"Mike\") person.introduce() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 Mike\" <\/code><\/pre>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e override<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 override \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">pen class Shape {     open fun draw() {         println(\"\u0420\u0438\u0441\u0443\u0435\u043c \u0444\u0438\u0433\u0443\u0440\u0443\")     } }  class Circle : Shape() {     override fun draw() {         println(\"\u0420\u0438\u0441\u0443\u0435\u043c \u043a\u0440\u0443\u0433\")     } }  val shape: Shape = Circle() shape.draw() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u0420\u0438\u0441\u0443\u0435\u043c \u043a\u0440\u0443\u0433\" <\/code><\/pre>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e super<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 super \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a super \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430\u0445 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">open class Animal(val name: String) {     open fun makeSound() {         println(\"\u0416\u0438\u0432\u043e\u0442\u043d\u043e\u0435 \u0438\u0437\u0434\u0430\u0435\u0442 \u0437\u0432\u0443\u043a\")     } }  class Dog(name: String) : Animal(name) {     override fun makeSound() {         super.makeSound()         println(\"\u0421\u043e\u0431\u0430\u043a\u0430 \u043b\u0430\u0435\u0442\")     } }  val dog = Dog(\"\u0411\u0430\u0440\u0441\u0438\u043a\") dog.makeSound() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442: \/\/ \u0416\u0438\u0432\u043e\u0442\u043d\u043e\u0435 \u0438\u0437\u0434\u0430\u0435\u0442 \u0437\u0432\u0443\u043a \/\/ \u0421\u043e\u0431\u0430\u043a\u0430 \u043b\u0430\u0435\u0442 <\/code><\/pre>\n<p>**Getter\/Setter **<\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0435\u0442\u0442\u0435\u0440\u044b \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u044b \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0435\u0442\u0442\u0435\u0440\u0430\u043c\u0438 \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class Person {     var age: Int = 0         get() = field         set(value) {             field = if (value &lt; 0) 0 else value         } }  val person = Person() person.age = -5 println(person.age) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"0\"  class Circle {     var radius: Double = 0.0         set(value) {             field = if (value &lt; 0) 0.0 else value         }         get() = field }  val circle = Circle() circle.radius = -5.0 println(circle.radius) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"0.0\" <\/code><\/pre>\n<p><strong>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 Kotlin, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a private, protected, internal \u0438 public.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class Person {     private var age: Int = 0     protected var name: String = \"\"     internal var address: String = \"\"     var phoneNumber: String = \"\" }  val person = Person() person.name = \"John\" \/\/ \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 \"name\" \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u0438 \u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u043e\u0432 person.address = \"123 Main St\" \/\/ \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 \"address\" \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f person.phoneNumber = \"123-456-7890\" \/\/ \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 \"phoneNumber\" \u0432\u0435\u0437\u0434\u0435  class Employee : Person() {     fun printEmployeeDetails() {         println(name) \/\/ \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 \"name\" \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430     } } <\/code><\/pre>\n<p><strong>Data class<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 data class \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 data class, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 equals(), hashCode() \u0438 toString().<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">data class Person(val name: String, val age: Int)  val person1 = Person(\"John\", 25) val person2 = Person(\"John\", 25)  println(person1 == person2) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"true\" (\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432) println(person1.hashCode()) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0445\u044d\u0448-\u043a\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 println(person1.toString()) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <\/code><\/pre>\n<p><strong>Nested, Inner \u043a\u043b\u0430\u0441\u0441\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 nested \u0438 inner \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0447\u043b\u0435\u043d\u0430\u043c \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0438\u0437 nested \u0438 inner \u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class Outer {     private val outerProperty: Int = 10      class Nested {         fun accessOuter() {             \/\/ \u041d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e: outerProperty         }     }      inner class Inner {         fun accessOuter() {             val value = outerProperty         }     } }  val nested = Outer.Nested() val inner = Outer().Inner() <\/code><\/pre>\n<p><strong>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">fun String.isPalindrome(): Boolean {     return this == this.reversed() }  val text = \"level\" println(text.isPalindrome()) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"true\"  fun List&lt;Int>.sum(): Int {     var total = 0     for (number in this) {         total += number     }     return total }  val numbers = listOf(1, 2, 3, 4, 5) println(numbers.sum()) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"15\" <\/code><\/pre>\n<p><strong>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">interface Drawable {     fun draw() }  class Circle : Drawable {     override fun draw() {         println(\"\u0420\u0438\u0441\u0443\u0435\u043c \u043a\u0440\u0443\u0433\")     } }  val circle = Circle() circle.draw() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u0420\u0438\u0441\u0443\u0435\u043c \u043a\u0440\u0443\u0433\" <\/code><\/pre>\n<p><strong>\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u0430\u0445.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">abstract class Shape {     abstract fun calculateArea(): Double     abstract fun calculatePerimeter(): Double }  class Circle(private val radius: Double) : Shape() {     override fun calculateArea(): Double {         return Math.PI * radius * radius     }      override fun calculatePerimeter(): Double {         return 2 * Math.PI * radius     } }  val circle = Circle(5.0) println(circle.calculateArea()) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u043a\u0440\u0443\u0433\u0430 println(circle.calculatePerimeter()) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440 \u043a\u0440\u0443\u0433\u0430 <\/code><\/pre>\n<p><strong>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0438\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">interface OnClickListener {     fun onClick() }  val button = Button() button.setOnClickListener(object : OnClickListener {     override fun onClick() {         println(\"\u041a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430\")     } }) <\/code><\/pre>\n<p><strong>Companion object<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 companion object \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a companion object \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0431\u0440\u0438\u0447\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043e\u0431\u0449\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class MathUtils {     companion object {         fun square(number: Int): Int {             return number * number         }     } }  val result = MathUtils.square(5) println(result) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"25\" <\/code><\/pre>\n<p><strong>is, as \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 is \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u0438\u043f\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 as \u0434\u043b\u044f \u044f\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 as?.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">fun printLength(value: Any) {     if (value is String) {         println(value.length)     } }  val text: Any = \"Hello\" printLength(text) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0434\u043b\u0438\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0438  val number: Any = 42 val doubleNumber = number as? Double println(doubleNumber) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"null\" <\/code><\/pre>\n<p><strong>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f == \u0438 ===.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">val number1 = 5 val number2 = 5 val number3: Int? = 5  println(number1 == number2) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"true\" (\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439) println(number1 === number2) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"true\" (\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043e\u043a) println(number1 === number3) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"true\" (\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043e\u043a) <\/code><\/pre>\n<p><strong>Enum \u043a\u043b\u0430\u0441\u0441<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 enum \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0432 enum \u043a\u043b\u0430\u0441\u0441\u0430\u0445.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">enum class Color {     RED, GREEN, BLUE }  val color = Color.GREEN println(color) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"GREEN\"  enum class Direction(val degrees: Int) {     NORTH(0),     EAST(90),     SOUTH(180),     WEST(270) }  val direction = Direction.NORTH println(direction.degrees) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"0\" <\/code><\/pre>\n<p><strong>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 Kotlin (Mutable, read-only)<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438 (mutable) \u0438 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438 (read-only) \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a List, Set \u0438 Map.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">\/\/ \u041d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f val list: List&lt;String> = listOf(\"apple\", \"banana\", \"orange\") val set: Set&lt;Int> = setOf(1, 2, 3, 4, 5) val map: Map&lt;String, Int> = mapOf(\"one\" to 1, \"two\" to 2, \"three\" to 3)  \/\/ \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f val mutableList: MutableList&lt;String> = mutableListOf(\"apple\", \"banana\", \"orange\") val mutableSet: MutableSet&lt;Int> = mutableSetOf(1, 2, 3, 4, 5) val mutableMap: MutableMap&lt;String, Int> = mutableMapOf(\"one\" to 1, \"two\" to 2, \"three\" to 3)  \/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 mutableList.add(\"grape\") mutableSet.remove(3) mutableMap[\"four\"] = 4 <\/code><\/pre>\n<p><strong>Set, List, Map, Sequence + \u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u043b\u044f Set, List, Map \u0438 Sequence.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u044d\u0442\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">\/\/ Set val set: Set&lt;Int> = setOf(1, 2, 3, 4, 5) println(set.size) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 println(set.contains(3)) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"true\" \u0435\u0441\u043b\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 3  \/\/ List val list: List&lt;String> = listOf(\"apple\", \"banana\", \"orange\") println(list.size) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 println(list.get(1)) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 1 println(list.indexOf(\"banana\")) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \"banana\"  \/\/ Map val map: Map&lt;String, Int> = mapOf(\"one\" to 1, \"two\" to 2, \"three\" to 3) println(map.size) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u043b\u043e\u0432\u0430\u0440\u044f println(map[\"two\"]) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0430 \"two\" println(map.containsKey(\"three\")) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"true\" \u0435\u0441\u043b\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043b\u044e\u0447 \"three\"  \/\/ Sequence val sequence: Sequence&lt;Int> = sequenceOf(1, 2, 3, 4, 5) val filteredSequence = sequence.filter { it > 2 } val transformedSequence = filteredSequence.map { it * 2 } val result = transformedSequence.toList() println(result) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 [6, 8, 10] <\/code><\/pre>\n<p><strong>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438: \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u043f\u0435\u0440\u0435\u0431\u043e\u0440<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043c\u0435\u0442\u043e\u0434\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u0438 \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">\/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0447\u0438\u0441\u0435\u043b val numbers = listOf(5, 3, 8, 1, 7) val sortedNumbers = numbers.sorted() println(sortedNumbers) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 [1, 3, 5, 7, 8]  \/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0442\u0440\u043e\u043a val names = listOf(\"Alice\", \"Bob\", \"Charlie\", \"David\") val sortedNames = names.sortedBy { it.length } println(sortedNames) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 [Bob, David, Alice, Charlie]  \/\/ \u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430 val fruits = listOf(\"apple\", \"banana\", \"orange\") for (fruit in fruits) {     println(fruit) } <\/code><\/pre>\n<p><strong>Generics<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">\/\/ \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 class Box&lt;T>(val value: T)  val intBox = Box(42) val stringBox = Box(\"Hello\")  \/\/ \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f fun &lt;T> printValue(value: T) {     println(value) }  printValue(10) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 10 printValue(\"Hello\") \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"Hello\" <\/code><\/pre>\n<p><strong>\u041b\u044f\u043c\u0431\u0434\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u044f\u043c\u0431\u0434\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0437\u0443\u0447\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0438\u0445 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">\/\/ \u041b\u044f\u043c\u0431\u0434\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 val sum = { a: Int, b: Int -> a + b } println(sum(5, 3)) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 8  \/\/ \u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f val product = fun(a: Int, b: Int): Int {     return a * b } println(product(5, 3)) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 15  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 fun calculate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {     return operation(a, b) }  val result = calculate(5, 3) { a, b -> a - b } println(result) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 2 <\/code><\/pre>\n<p><strong>Scope-\u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 scope-\u0444\u0443\u043d\u043a\u0446\u0438\u0439 (let, run, with, apply, also) \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 scope-\u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0438 \u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f let val length = \"Hello\".let { text ->     text.length } println(length) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 5  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f run val result = run {     val a = 5     val b = 3     a + b } println(result) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 8  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f with val person = Person() val nameLength = with(person) {     name.length } println(nameLength) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u0434\u043b\u0438\u043d\u0443 \u0438\u043c\u0435\u043d\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 person  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f apply val person = Person().apply {     name = \"Alice\"     age = 30 }  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f also val numbers = mutableListOf(1, 2, 3) val modifiedNumbers = numbers.also { list ->     list.add(4)     list.remove(2) } println(modifiedNumbers) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 [1, 3, 4] <\/code><\/pre>\n<p>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u044b \u0432\u0438\u0434\u043e\u0441\u0438\u043a\u0438 \u0438 \u0447\u0442\u043e\u0431 \u0440\u0430\u0437\u0436\u0435\u0432\u0430\u043b\u0438, \u043c\u043e\u0433\u0443 \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u0442\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u044f (\u043d\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u0430):<\/p>\n<p><a href=\"https:\/\/javabegin.ru\/\" rel=\"noopener noreferrer nofollow\">Javabegin<\/a> &#8212; \u0442\u0443\u0442 \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438 Kotlin, \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u0444\u0443\u043b\u043b\u0441\u0442\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d, \u043d\u043e \u043f\u043b\u0430\u0442\u043d\u043e.<br \/> <a href=\"https:\/\/stepik.org\/course\/118541\/promo\" rel=\"noopener noreferrer nofollow\">Stepik &#8212; Kotlin &#8212; \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442<\/a> &#8212; \u0442\u043e\u0436\u0435 \u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u0443\u0440\u0441, \u043d\u043e \u043e\u043d\u043e \u0442\u043e\u0433\u043e \u0441\u0442\u043e\u0438\u0442.<br \/> <a href=\"https:\/\/developer.alexanderklimov.ru\/android\/kotlin\/\" rel=\"noopener noreferrer nofollow\">developer.alexanderklimov<\/a> &#8212; \u043a\u0430\u043a \u0434\u043e\u043f \u0440\u0435\u0441\u0443\u0440\u0441 \u043a \u043a\u0443\u0440\u0441\u0430\u043c \u0438\u043b\u0438 \u0441\u0443\u0440\u0441 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. (\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e)<br \/> <a href=\"https:\/\/metanit.com\/kotlin\/tutorial\/2.1.php\" rel=\"noopener noreferrer nofollow\">Metanit<\/a> &#8212; \u043a\u0430\u043a \u0434\u043e\u043f \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b, \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e. (\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e)<br \/> <a href=\"https:\/\/kotlinlang.ru\" rel=\"noopener noreferrer nofollow\">\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u044f\u0437\u044b\u043a\u0443 Kotlin<\/a> &#8212; \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044b \u043e\u0444. \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. (\u0434\u043b\u044f \u043a\u043e\u0433\u043e-\u0442\u043e \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0438\u0439 \u0441\u0443\u0440\u0441 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f) (\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e)<br \/> <a href=\"https:\/\/www.youtube.com\/watch?v=30tchn0TjaM\" rel=\"noopener noreferrer nofollow\">Kotlin \u0437\u0430 \u0447\u0430\u0441. \u0422\u0435\u043e\u0440\u0438\u044f \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430.<\/a> &#8212; \u043a\u0430\u043a \u0434\u043e\u043f \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0438\u0441\u0430\u043b \u043d\u0430 java (\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e)<br \/> <a href=\"https:\/\/www.youtube.com\/watch?v=hivUn-YOTz4&amp;list=PLgPRahgE-Gcu4s-I9mrHUrKUp9dY6QcJC\" rel=\"noopener noreferrer nofollow\">\u041a\u0443\u0440\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f Kotlin \u0441 \u043d\u0443\u043b\u044f<\/a> &#8212; \u043a\u0443\u0440\u0441 \u043f\u043e \u043a\u043e\u0442\u043b\u0438\u043d \u0441 \u043d\u0443\u043b\u044f (\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e)<\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u0431\u0435\u0440\u0435\u0442\u0435 \u043a\u0443\u0440\u0441\u044b, \u0442\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043a\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u043e \u0445\u043e\u0434\u0443 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e. \u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0447\u0438\u0442\u0435\u0441\u044c \u0441\u0430\u043c\u0438, \u0442\u043e \u043f\u0440\u043e\u0449\u0435 \u0431\u0440\u0430\u0442\u044c \u043b\u0435\u0433\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0430\u0445 \u043f\u043e \u0442\u0438\u043f\u0443 Leetcode \u0438 CodeWars \u0438 \u043f\u043e \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0440\u0435\u0448\u0430\u0442\u044c.<\/p>\n<p>\u042d\u0442\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e \u0432\u0430\u043c \u0445\u0432\u0430\u0442\u0438\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u0442\u0435\u043c\u044b, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043a\u0443\u0440\u0441\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u044e \u0430\u043d\u0434\u0440\u043e\u0438\u0434\u0430 \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430. \u041e\u0431 \u044d\u0442\u043e\u043c \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <\/p>\n<div class=\"tm-article-poll-container\">\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-article-poll__notice tm-notice_positive\"><!----> <\/p>\n<div class=\"tm-notice__inner\"><!----> <\/p>\n<div class=\"tm-notice__content\"><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/741098\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__header\">\u0411\u044b\u043b\u0430 \u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f?<\/div>\n<div class=\"tm-article-poll__answers\">\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">             50%           <\/span> <span class=\"tm-article-poll__answer-label\">\u0414\u0430, \u043d\u0430\u0448\u0435\u043b\/-\u043b\u0430 \u0432 \u043d\u0435\u0439 \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f<\/span> <span class=\"tm-article-poll__answer-votes\">             1           <\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width:50%;\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">             50%           <\/span> <span class=\"tm-article-poll__answer-label\">\u041f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0448\u0435\u043b\/-\u043b\u0430 \u043f\u043e\u0447\u0435\u043a\u0430\u0442\u044c \u0441\u0430\u0431\u0436<\/span> <span class=\"tm-article-poll__answer-votes\">             1           <\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width:50%;\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">             0%           <\/span> <span class=\"tm-article-poll__answer-label\">\u041d\u0435\u0442, \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c\u0438 \u043a \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e<\/span> <span class=\"tm-article-poll__answer-votes\">             0           <\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width:0%;\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__stats\">        \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 2 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.           \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442.      <\/div>\n<\/div>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/741098\/\"> https:\/\/habr.com\/ru\/articles\/741098\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"\">\n<div><figcaption>Let&#8217;s sniff kotlin<\/figcaption><\/div>\n<\/figure>\n<p> \u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430\u0445 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0433\u0430\u0439\u0434\u043e\u0432, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e. \u041c\u043d\u043e\u0433\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0439 \u0437\u0430\u0442\u0435\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043c\u0435\u0441\u043b\u0430. <\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u0430 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 (Espresso) \u0438 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c (Kaspresso, Ultron), \u0430 \u043d\u0435 \u0432\u043e\u0442 \u044d\u0442\u0438 \u0432\u0430\u0448\u0438 appium&#8217;\u044b. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u043a\u0438\u043b\u043b\u043e\u0432 \u0438 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u043d\u0430 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 (\u0435\u0441\u043b\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a \u0432\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435), \u043d\u043e \u0442\u043e \u043c\u043e\u0435 \u0438\u043c\u0445\u043e.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u0430 \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0437\u043d\u0430\u044e\u0442 \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0443\u0442\u044c \u0432 \u0430\u043d\u0434\u0440\u043e\u0438\u0434 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0443 \u043a\u043e\u0433\u043e \u043d\u0435\u0442 \u0437\u043d\u0430\u043d\u0438\u0439 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Kotlin.<\/p>\n<\/th>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043a \u0434\u0435\u043b\u0443 \u0438 \u043e\u0431\u0441\u0443\u0434\u0438\u043c, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0443\u0442\u0438 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c.<\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u0431\u0430\u0437\u0430-\u0431\u0430\u0437, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0432\u043e\u0438\u0442\u044c &#8212; \u044d\u0442\u043e \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f kotlin. \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 java? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 kotlin \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0442\u0435\u043a \u043d\u0430 \u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<br \/> Kotlin \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Java, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Java \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0433\u0447\u0435 \u043e\u0441\u0432\u043e\u0438\u0442\u044c Kotlin. \u041c\u043d\u043e\u0433\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0432 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438 kotlin \u0431\u0443\u0434\u0443\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b \u0438 \u043f\u043e\u0439\u0434\u0443\u0442 \u043f\u0440\u043e\u0449\u0435. \u041d\u043e \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u0438\u043b\u0438 \u043e\u043f\u044b\u0442\u0430 \u043d\u0435\u0442, \u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0433\u043e\u0432\u043e\u0440. \u0412\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u0434\u043e\u043b\u0436\u043d\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u0438 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u0438.<\/p>\n<p>&#171;\u041d\u0443, \u0432\u043e\u0442, kotlin&#8230; \u0422\u0430\u043c \u0436\u0435 \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e, \u0447\u0442\u043e \u0443\u0447\u0438\u0442\u044c &#8212; \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e&#187;. \u0422\u0430\u043a\u0438\u0435 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u044f \u0441\u043b\u044b\u0448\u0430\u043b \u043d\u0438 \u0440\u0430\u0437 \u0438 \u043d\u0438 \u0434\u0432\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u043e\u0442 kotlin core, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u0435\u043d.<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/p>\n<\/li>\n<li>\n<p>\u0426\u0438\u043a\u043b\u044b<\/p>\n<\/li>\n<li>\n<p>\u0421\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b<\/p>\n<\/li>\n<li>\n<p>Nullable \u0442\u0438\u043f\u044b<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432<\/p>\n<\/li>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0430\u0441\u0441\u044b, \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b, \u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e this<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e override<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e super<\/p>\n<\/li>\n<li>\n<p>Getter\/Setter<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/p>\n<\/li>\n<li>\n<p>Data class<\/p>\n<\/li>\n<li>\n<p>Nested, Inner \u043a\u043b\u0430\u0441\u0441\u044b<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/p>\n<\/li>\n<li>\n<p>\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b<\/p>\n<\/li>\n<li>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441<\/p>\n<\/li>\n<li>\n<p>Companion object<\/p>\n<\/li>\n<li>\n<p>is, as \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>Enum \u043a\u043b\u0430\u0441\u0441<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 Kotlin (Mutable, read-only)<\/p>\n<\/li>\n<li>\n<p>Set, List, Map, Sequence + \u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438: \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u043f\u0435\u0440\u0435\u0431\u043e\u0440<\/p>\n<\/li>\n<li>\n<p>Generics<\/p>\n<\/li>\n<li>\n<p>\u041b\u044f\u043c\u0431\u0434\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0441\u0448\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430<\/p>\n<\/li>\n<li>\n<p>Scope-\u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430, \u0441\u043f\u0438\u0441\u043e\u0447\u0435\u043a \u043d\u0435\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u043e\u0434 \u043d\u0438\u0445. \u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043a\u043e\u0434\u0435 \u0432\u0430\u0448\u0438\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c\u0438, \u0430 \u043d\u0435 \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u0432 \u0441\u0432\u043e\u0438 \u0442\u0435\u0441\u0442\u044b, \u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0448 \u0432\u044b\u0431\u043e\u0440.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0443\u043d\u043a\u0442:<\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0438\u0445 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 val (\u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f) \u0438 var (\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f).<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0438\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043f\u043e\u0437\u0436\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 init.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 const.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e lateinit \u0434\u043b\u044f \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043b\u0435\u0433\u0430\u0442.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">val name: String = \"John\" \/\/ \u041d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f var age: Int = 25 \/\/ \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f  companion object {     const val PI = 3.14159 \/\/ \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 }  lateinit var lazyVariable: String \/\/ \u041e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f  val userName: String by lazy { getName() } \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043b\u0435\u0433\u0430\u0442 <\/code><\/pre>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432 if, else if \u0438 else \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u043e\u0434\u0430 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 when \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 in \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435 when.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 when \u0432 Kotlin \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438.<\/p>\n<pre><code class=\"kotlin\">val num = 10  if (num > 0) {     println(\"\u0427\u0438\u0441\u043b\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435\") } else if (num &lt; 0) {     println(\"\u0427\u0438\u0441\u043b\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435\") } else {     println(\"\u0427\u0438\u0441\u043b\u043e \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e\") }  val result = when (num) {     in 1..10 -> \"\u0427\u0438\u0441\u043b\u043e \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 1 \u0434\u043e 10\"     0 -> \"\u0427\u0438\u0441\u043b\u043e \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u043b\u044e\"     else -> \"\u0427\u0438\u0441\u043b\u043e \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b\" } println(result) <\/code><\/pre>\n<p><strong>\u0426\u0438\u043a\u043b\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0446\u0438\u043a\u043b for \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443 \u0438\u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0438\u043a\u043b\u043e\u0432 while \u0438 do-while \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u043a\u043e\u0434\u0430 \u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b break \u0438 continue \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0446\u0438\u043a\u043b\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">for (i in 1..5) {     println(i) }  var i = 1 while (i &lt;= 5) {     println(i)     i++ }  i = 1 do {     println(i)     i++ } while (i &lt;= 5) <\/code><\/pre>\n<p><strong>\u0421\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u043c\u0438 \u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 Java (\u0433\u0434\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0438 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435) \u2013 \u0432 Kotlin \u043d\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u0441\u0435 \u0442\u0438\u043f\u044b \u2013 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0435 (\u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435)).<\/p>\n<\/li>\n<\/ul>\n<p>String<br \/> Long\/Int\/Short\/Byte<br \/> Double\/Float<br \/> Char<br \/> Boolean<\/p>\n<ul>\n<li>\n<p>\u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0442\u0430\u043a\u0438\u043c \u0442\u0438\u043f\u043e\u043c.<\/p>\n<\/li>\n<\/ul>\n<p><strong>Nullable \u0442\u0438\u043f\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 nullable \u0442\u0438\u043f\u044b \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 (?.) \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0438 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 nullable \u0442\u0438\u043f\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 (!!) \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f null.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">var nullableValue: String? = \"Nullable\" nullableValue = null \/\/ \u041f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c `null` nullable \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439  val length = nullableValue?.length \/\/ \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 `length`, \u0432\u0435\u0440\u043d\u0435\u0442 `null`, \u0435\u0441\u043b\u0438 `nullableValue` \u0440\u0430\u0432\u043d\u043e `null`  val uppercaseValue = nullableValue!!.toUpperCase() \/\/ \u0423\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043e \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438, \u0432\u044b\u0437\u043e\u0432 `toUpperCase()` \u0435\u0441\u043b\u0438 `nullableValue` \u043d\u0435 \u0440\u0430\u0432\u043d\u043e `null` <\/code><\/pre>\n<p><strong>\u041c\u0430\u0441\u0441\u0438\u0432<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">val numbers = arrayOf(1, 2, 3, 4, 5) \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b  val names = arrayOf(\"John\", \"Mike\", \"Sarah\") \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441\u0442\u0440\u043e\u043a  val values = intArrayOf(1, 2, 3, 4, 5) \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b  println(numbers[0]) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 (1)  numbers[1] = 10 \/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430 10 <\/code><\/pre>\n<p><strong>\u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 fun.<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">fun greet(name: String) {     println(\"\u041f\u0440\u0438\u0432\u0435\u0442, $name!\") }  greet(\"John\") \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u041f\u0440\u0438\u0432\u0435\u0442, John!\"  fun addNumbers(a: Int, b: Int): Int {     return a + b }  val sum = addNumbers(5, 3) \/\/ sum = 8  fun multiplyNumbers(a: Int, b: Int = 2): Int {     return a * b }  val result = multiplyNumbers(4) \/\/ result = 8 <\/code><\/pre>\n<p><strong>\u041a\u043b\u0430\u0441\u0441\u044b, \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b, \u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u044b \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u0432, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435, \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 object \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class Person(val name: String, val age: Int) {     fun introduce() {         println(\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 $name \u0438 \u043c\u043d\u0435 $age \u043b\u0435\u0442\")     } }  val person = Person(\"John\", 25) person.introduce() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 John \u0438 \u043c\u043d\u0435 25 \u043b\u0435\u0442\"  class Car(val brand: String, val model: String) {     constructor(brand: String) : this(brand, \"Unknown\") }  val car = Car(\"Toyota\") println(car.model) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"Unknown\"  object MathUtils {     fun square(number: Int): Int {         return number * number     } }  val squaredValue = MathUtils.square(5) \/\/ squaredValue = 25 <\/code><\/pre>\n<p><strong>\u041d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e super \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u043a\u043b\u0430\u0441\u0441\u0443 \u0438\u0437 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">open class Animal(val name: String) {     fun sleep() {         println(\"$name \u0441\u043f\u0438\u0442\")     } }  class Cat(name: String) : Animal(name) {     fun meow() {         println(\"$name \u043c\u044f\u0443\u043a\u0430\u0435\u0442\")     } }  val cat = Cat(\"Tom\") cat.sleep() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"Tom \u0441\u043f\u0438\u0442\" cat.meow() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"Tom \u043c\u044f\u0443\u043a\u0430\u0435\u0442\" <\/code><\/pre>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e this<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 this \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f this, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u0438\u043c\u0435\u043d \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class Person(val name: String) {     fun introduce() {         println(\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 $name\")     }      fun changeName(newName: String) {         this.name = newName     } }  val person = Person(\"John\") person.introduce() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 John\" person.changeName(\"Mike\") person.introduce() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 Mike\" <\/code><\/pre>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e override<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 override \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">pen class Shape {     open fun draw() {         println(\"\u0420\u0438\u0441\u0443\u0435\u043c \u0444\u0438\u0433\u0443\u0440\u0443\")     } }  class Circle : Shape() {     override fun draw() {         println(\"\u0420\u0438\u0441\u0443\u0435\u043c \u043a\u0440\u0443\u0433\")     } }  val shape: Shape = Circle() shape.draw() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"\u0420\u0438\u0441\u0443\u0435\u043c \u043a\u0440\u0443\u0433\" <\/code><\/pre>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e super<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 super \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a super \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430\u0445 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">open class Animal(val name: String) {     open fun makeSound() {         println(\"\u0416\u0438\u0432\u043e\u0442\u043d\u043e\u0435 \u0438\u0437\u0434\u0430\u0435\u0442 \u0437\u0432\u0443\u043a\")     } }  class Dog(name: String) : Animal(name) {     override fun makeSound() {         super.makeSound()         println(\"\u0421\u043e\u0431\u0430\u043a\u0430 \u043b\u0430\u0435\u0442\")     } }  val dog = Dog(\"\u0411\u0430\u0440\u0441\u0438\u043a\") dog.makeSound() \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442: \/\/ \u0416\u0438\u0432\u043e\u0442\u043d\u043e\u0435 \u0438\u0437\u0434\u0430\u0435\u0442 \u0437\u0432\u0443\u043a \/\/ \u0421\u043e\u0431\u0430\u043a\u0430 \u043b\u0430\u0435\u0442 <\/code><\/pre>\n<p>**Getter\/Setter **<\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0435\u0442\u0442\u0435\u0440\u044b \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u044b \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0435\u0442\u0442\u0435\u0440\u0430\u043c\u0438 \u0438 \u0441\u0435\u0442\u0442\u0435\u0440\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"kotlin\">class Person {     var age: Int = 0         get() = field         set(value) {             field = if (value &lt; 0) 0 else value         } }  val person = Person() person.age = -5 println(person.age) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"0\"  class Circle {     var radius: Double = 0.0         set(value) {             field = if (value &lt; 0) 0.0 else value         }         get() = field }  val circle = Circle() circle.radius = -5.0 println(circle.radius) \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u0442 \"0.0\" <\/code><\/pre>\n<p><strong>\u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/strong><\/p>\n<p>\u041d\u0430\u0434\u043e \u0437\u043d\u0430\u0442\u044c\/\u0443\u043c\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043b<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-348622","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/348622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=348622"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/348622\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=348622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=348622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=348622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}