{"id":55,"date":"2017-10-26T14:43:00","date_gmt":"2017-10-26T05:43:00","guid":{"rendered":"http:\/\/oksisi2.ddns.net:8092\/wordpress\/?p=55"},"modified":"2019-02-14T12:55:19","modified_gmt":"2019-02-14T03:55:19","slug":"%ea%b8%b0%eb%b3%b8-%ec%9e%90%eb%a3%8c%ed%98%95","status":"publish","type":"post","link":"https:\/\/charlezz.com\/?p=55","title":{"rendered":"[Kotlin Basics]\uae30\ubcf8 \uc790\ub8cc\ud615"},"content":{"rendered":"<h1>\uae30\ubcf8\uc790\ub8cc\ud615<\/h1>\n<h2>Numbers<\/h2>\n<p>\uc790\ubc14\ub791 \ube44\uc2b7\ud558\uc9c0\ub9cc \ub611\uac19\uc9c0\ub294 \uc54a\ub2e4. \uc608\ub97c \ub4e4\uba74 \uc554\uc2dc\uc801 \ud615\ubcc0\ud658\uc740 \uc81c\uacf5\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<pre>var mInt = 0\r\n var mLong = 0L\r\n\/\/mLong = mInt (\ud655\uc7a5\uc2dc\ud0a4\ub294 \uc554\uc2dc\uc801 \ud615\ubcc0\ud658\uc740 \ubd88\uac00\ub2a5)\r\nmLong = mInt.toLong()<\/pre>\n<p>\uc790\ub8cc\ud615 : \ube44\ud2b8 \uc0ac\uc774\uc988<br \/>\nDouble : 64<br \/>\nFloat : 32<br \/>\nLong : 64<br \/>\nInt : 32<br \/>\nShort : 16<br \/>\nByte : 8<br \/>\n<strong>\ucf54\ud2c0\ub9b0\uc5d0\uc11c\ub294 \ubb38\uc790(charater)\ub294 \uc22b\uc790\uac00 \uc544\ub2c8\ub2e4.<\/strong><\/p>\n<h3>\ub9ac\ud130\ub7f4 \uc0c1\uc218<\/h3>\n<p>\u00a0<br \/>\n\uc815\uc218 : 123<br \/>\nLong \ud0c0\uc785 \uc815\uc218 : 123L<br \/>\n16\uc9c4\uc218 : 0x0F<br \/>\n2\uc9c4\uc218 : 0b00001011<br \/>\nNote : 8\uc9c4\uc218\ub294 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc74c<br \/>\n\u00a0<br \/>\n\ubd80\ub3d9\uc18c\uc218\uc810\ub3c4 \uc9c0\uc6d0\ud55c\ub2e4<br \/>\nDouble\uc758 \uacbd\uc6b0 : 123.5, 123.5e10<br \/>\nFloat\uc758 \uacbd\uc6b0 : 123.5f , 123.5F<br \/>\n\u00a0<\/p>\n<h3>\uc22b\uc790\uc5d0 \ubc11\uc904 \uc9c0\uc6d0 (1.1\ubc84\uc804\ubd80\ud130)<\/h3>\n<p>\uac00\ub3c5\uc131\uc744 \uc99d\uac00\uc2dc\ud0a4\uae30 \uc704\ud574 \ubc11\uc904\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre>val oneMillion = 1_000_000\r\nval creditCardNumber = 1234_5678_9012_3456L\r\nval socialSecurityNumber = 999_99_9999L\r\nval hexBytes = 0xFF_EC_DE_5E\r\nval bytes = 0b11010010_01101001_10010100_10010010<\/pre>\n<p>\u00a0<br \/>\n\ud45c\ud604<br \/>\n\uc790\ubc14\uc5d0\uc11c\ub294 \u00a0\uc22b\uc790\ub294 \ubb3c\ub9ac\uc801\uc73c\ub85c JVM \uc6d0\uc2dc\uc790\ub8cc\ud615\uc5d0 \uc800\uc7a5\ub429\ub2c8\ub2e4.<br \/>\n\uc6b0\ub9ac\uac00 nullable\ud55c \uc22b\uc790\ub97c \ucc38\uc870\ub97c \ud544\uc694\ud55c\ub2e4\uac70\ub098 \uc81c\ub108\ub9ad\uc774 \uc774 \ud3ec\ud568\ub41c \uc22b\uc790\ub97c \ud544\uc694\ub85c \ud558\uc9c0 \uc54a\ub294 \uc774\uc0c1\ub9d0\uc774\uc8e0. \ud6c4\uc790\uc758 \uacbd\uc6b0\ub294 \uc22b\uc790\ub294 \ubc15\uc2f1\ub429\ub2c8\ub2e4.<\/p>\n<table style=\"border-style: solid;\">\n<tbody>\n<tr>\n<td>\n<p><strong>\ubc15\uc2f1<\/strong> \uac12\ud615\uc2dd -&gt; \ucc38\uc870\ud615\uc2dd = \ubc15\uc2f1 \uc2a4\ud0dd\uc5d0\uc11c \ud799\uc73c\ub85c \ub370\uc774\ud130\uac00 \ubcf5\uc0ac \uc554\uc2dc\uc801\uc73c\ub85c \ubcc0\ud658 \uac00\ub2a5<\/p>\n<p><strong>\uc5b8\ubc15\uc2f1<\/strong> \ucc38\uc870\ud615\uc2dd -&gt; \uac12\ud615\uc2dd = \uc5b8\ubc15\uc2f1 \ud799\uc5d0\uc11c \uc2a4\ud0dd\uc73c\ub85c \ub370\uc774\ud130\uac00 \ubcf5\uc0ac \uba85\uc2dc\uc801\uc73c\ub85c \ubcc0\ud658 \uac00\ub2a5<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\n\ubc15\uc2f1\ub41c\uc22b\uc790\ub294 identity \ubcf4\uc874\uc744 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<br \/>\n\uac1d\uccb4(\ud3ec\uc778\ud130)\uac00 \ub2e4\ub985\ub2c8\ub2e4.<\/p>\n<pre>val a: Int = 10000\r\nprint(a === a) \/\/ Prints 'true'\r\nval boxedA: Int? = a\r\nval anotherBoxedA: Int? = a\r\nprint(boxedA === anotherBoxedA) \/\/ !!!Prints 'false'!!!<\/pre>\n<p>\uac12\uc740 \ub3d9\uc77c\ud569\ub2c8\ub2e4.<\/p>\n<pre>val a: Int = 10000\r\nprint(a == a) \/\/ Prints 'true'\r\nval boxedA: Int? = a\r\nval anotherBoxedA: Int? = a\r\nprint(boxedA == anotherBoxedA) \/\/ Prints 'true'<\/pre>\n<h3>\uba85\uc2dc\uc801 \ud615\ubcc0\ud658<\/h3>\n<p>\ucf54\ud2c0\ub9b0\uc5d0\uc11c\ub294 \uc791\uc740 \uc790\ub8cc\ud615\uc774 \ud070 \uc790\ub8cc\ud615\uc73c\ub85c \uc18d\ud560 \uc218 \uc5c6\ub2e4. \uc790\ubc14\uc5d0\uc11c\ub294 int to long \uc740 \uac00\ub2a5\ud558\uc9c0\ub9cc Int to Long\uc774 \uc548\ub418\ub294\uac83\uacfc \ub9c8\ucc2c\uac00\uc9c0. \ub2e4\uc74c\ub3c4 \ubb38\uc81c\ub4e4\uc744 \ubcf4\uc790<\/p>\n<pre>\/\/ \uc2e4\uc81c\ub85c \ucef4\ud30c\uc77c\ub418\uc9c0 \uc54a\ub294 \ucf54\ub4dc\r\nval a: Int? = 1 \/\/ \ubc15\uc2f1\ub41c Int (java.lang.Integer)\r\nval b: Long? = a \/\/ \ubc15\uc2f1\ub41c Long\uc73c\ub85c \uc554\uc2dc\uc801 \ud615\ubcc0\ud658 \ud558\uae30(java.lang.Long)\r\nprint(a == b) \/\/ false \ucd9c\ub825\r\n<\/pre>\n<p>\uc8fc\uc18c\uac12\ubfd0\ub9cc \uc544\ub2c8\ub77c \uac12\ube44\uad50\uc5d0\uc11c\ub3c4 \ubb38\uc81c\uac00 \uc0dd\uae34\ub2e4<br \/>\n\uadf8\uc5d0\ub530\ub978 \uacb0\uacfc\ub85c \uc791\uc740 \uc790\ub8cc\ud615\uc740 \ud070\uc790\ub8cc\ud615\uc73c\ub85c \uc554\uc2dc\uc801 \ud615\ubcc0\ud658\uc774 \uc548\ub41c\ub2e4. \uc774\uac83\uc740 \uba85\uc2dc\uc801 \ubcc0\ud658 \uc5c6\uc774\ub294 Byte\uac12\uc744 Int\uac12\uc73c\ub85c \ubcc0\ud658\ud558\ub294\uac8c \ubd88\uac00\ub2a5\ud558\ub2e4\ub294 \ub73b\uc774\ub2e4.<\/p>\n<pre>val b: Byte = 1 \/\/ OK, literals are checked statically\r\nval i: Int = b \/\/ ERROR<\/pre>\n<p>\uba85\uc2dc\uc801 \ud615\ubcc0\ud658\uc744 \ud1b5\ud574 \uc22b\uc790 \uc790\ub8cc\ud615\uc744 \ud06c\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n<pre>val i: Int = b.toInt()<\/pre>\n<p>\ubaa8\ub4e0 \uc22b\uc790\ud615\uc740 \ub2e4\uc74c \ud615\ubcc0\ud658\uc744 \uc81c\uacf5\ud55c\ub2e4<\/p>\n<ul>\n<li>toByte(): Byte<\/li>\n<li>toShort(): Short<\/li>\n<li>toInt(): Int<\/li>\n<li>toLong(): Long<\/li>\n<li>toFloat(): Float<\/li>\n<li>toDouble(): Double<\/li>\n<li>toChar(): Char<\/li>\n<\/ul>\n<p>\uc790\ub8cc\ud615\uc774 \ubb38\ub9e5\uc5d0\uc11c \uc720\ucd94\ub418\uace0 \uc801\uc808\ud55c \uc5f0\uc0b0\uc744 \uc704\ud574 \uc0b0\uc220 \uc5f0\uc0b0\uc774 \uc624\ubc84\ub85c\ub4dc \ub418\uae30 \ub54c\ubb38\uc5d0 \uc554\uc2dc\uc801 \ud615\ubcc0\ud658\uc758 \ubd80\uc7ac\ub294 \uac70\uc758 \ub208\uc5d0 \ub744\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>val l = 1L + 3 \/\/ Long + Int =&gt; Long<\/pre>\n<h3>\uc5f0\uc0b0\uc790<\/h3>\n<p>\ucf54\ud2c0\ub9b0\uc740 \uae30\ubcf8\uc801\uc778 \uc0b0\uc220 \uc5f0\uc0b0\uc790\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<br \/>\nsee <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/operator-overloading.html\">Operator overloading<\/a><br \/>\n\ube44\ud2b8 \uc5f0\uc0b0\uacfc \uad00\ub828\ud558\uc5ec \ud2b9\uc218 \ubb38\uc790\ub294 \uc5c6\uc9c0\ub9cc \uc911\uc704 \ud615\ud0dc(infix form)\ub85c \ud638\ucd9c \ud560 \uc218\uc788\ub294 \uba85\uba85 \ub41c \ud568\uc218\uc785\ub2c8\ub2e4 \uc608\ub97c\ub4e4\uba74<\/p>\n<pre>val x = (1 shl 2) and 0x000FF000<\/pre>\n<p>\ube44\ud2b8\uc5f0\uc0b0\uc790 Int\uc640 Long\ub9cc \uc0ac\uc6a9\uac00\ub2a5<\/p>\n<ul>\n<li>shl(bits) &#8211; signed shift left(\uc790\ubc14\uc758 &lt;&lt;)<\/li>\n<li>shr(bits) &#8211; signed shift right(\uc790\ubc14\uc758 &gt;&gt;)<\/li>\n<li>ushr(bits) &#8211; unsigned shift right(\uc790\ubc14\uc758 &gt;&gt;&gt;)<\/li>\n<li>and(bits) &#8211; and<\/li>\n<li>or(bits) &#8211; or<\/li>\n<li>xor(bits) &#8211; xor<\/li>\n<li>inv() &#8211; \ube44\ud2b8 \ub4a4\uc9d1\uae30<\/li>\n<\/ul>\n<h3>\ubd80\ub3d9\uc18c\uc218\uc810 \ube44\uad50<\/h3>\n<p>\ubd80\ub3d9\uc18c\uc218 \ube44\uad50 \uc5f0\uc0b0\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4<\/p>\n<ul>\n<li>\ub3d9\ub4f1\ud55c \uac12 \ube44\uad50 : a == b , a != b<\/li>\n<li>\ud06c\uae30 \ube44\uad50 : a &lt; b, a&gt; b, a &lt;=b, a &gt;= b<\/li>\n<li>\ubc94\uc704 \ube44\uad50 : a..b, \u00a0x in a..b, x !in a..b<\/li>\n<\/ul>\n<h2>Characters<\/h2>\n<p>\ubb38\uc790\ub294 Char\ub85c \ud45c\ud604\ub418\uba70, \uc22b\uc790\ud615\uc73c\ub85c \ub2e4\ub8e8\uc5b4 \uc9c0\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>fun check(c: Char) {\r\n if (c == 1) { \/\/ ERROR: incompatible types\r\n \/\/ ...\r\n }\r\n}<\/pre>\n<p>\ubb38\uc790\uc5f4 \uc0c1\uc218\ub294 \ud640\ub530\uc634\ud45c\ub85c \ud45c\ud604\ub429\ub2c8\ub2e4. \ud2b9\uc218 \ubb38\uc790\uc758 \uacbd\uc6b0 \ubc31\uc2ac\ub798\uc26c\ub85c \ud45c\ud604\ud569\ub2c8\ub2e4.<\/p>\n<pre>\\t, \\b, \\n, \\r, \\', \\\", \\\\, \\$<\/pre>\n<p>\ub2e4\ub978 \ubb38\uc790\ub97c \uc778\ucf54\ub529 \ud558\uae30 \uc704\ud574\uc11c\ub294 \uc720\ub2c8\ucf54\ub4dc\uc758 \uc774\uc2a4\ucf00\uc774\ud504 \uc2dc\ud000\uc2a4 \ubb38\ubc95\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"\">'\\uFF00'<\/pre>\n<p>\ubb38\uc790\ub294 \uba85\uc2dc\uc801\uc73c\ub85c Int\ud0c0\uc785\uc73c\ub85c \ubcc0\ud658 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<pre>fun decimalDigitValue(c: Char): Int {\r\n if (c !in '0'..'9')\r\n throw IllegalArgumentException(\"Out of range\")\r\n return c.toInt() - '0'.toInt() \/\/ Explicit conversions to numbers\r\n}<\/pre>\n<p>\uc22b\uc790\uc640 \uc720\uc0ac\ud558\uac8c \ubb38\uc790 \uc5ed\uc2dc nullable \ucc38\uc870\uac00 \ud544\uc694\ud55c \uacbd\uc6b0 \ubc15\uc2f1\ub429\ub2c8\ub2e4. \ubc15\uc2f1\ud6c4 \uc8fc\uc18c\uac12\uc740 \ubcf4\uc874\ub418\uc9c0\uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>Booleans<\/h2>\n<p>true \uc640 false \uac12\ub9cc \uac00\uc9d1\ub2c8\ub2e4.<br \/>\nnull\uc774 \ud544\uc694\ud55c\uacbd\uc6b0 Boolean\uc73c\ub85c \ubc15\uc2f1\ud569\ub2c8\ub2e4<br \/>\n\ub2e4\uc74c\uacfc \uac19\uc740 \uc5f0\uc0b0\uc790\ub97c \uac00\uc9d1\ub2c8\ub2e4<\/p>\n<ul>\n<li>||<\/li>\n<li>&amp;&amp;<\/li>\n<li>!<\/li>\n<\/ul>\n<h2>Arrays<\/h2>\n<p>\ucf54\ud2c0\ub9b0\uc5d0\uc11c\uc758 \ubc30\uc5f4\uc740 Arra\ub85c \ud45c\ud604\ub429\ub2c8\ub2e4. get, set, size\uba54\uc18c\ub4dc\ub97c \uac00\uc9c0\uace0 \uc788\uace0, []\ub97c \ud1b5\ud574 \uc544\uc774\ud15c\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \uba87\uac00\uc9c0 \uc720\uc6a9\ud55c \uba64\ubc84 \ud568\uc218 \uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"plain-toggle:true lang:java decode:true\">class Array&lt;T&gt; private constructor() {\r\n val size: Int\r\n operator fun get(index: Int): T\r\n operator fun set(index: Int, value: T): Unit\r\noperator fun iterator(): Iterator&lt;T&gt;\r\n \/\/ ...\r\n}<\/pre>\n<p>\u00a0<br \/>\n\ubc30\uc5f4\uc744 \ub9cc\ub4e4\uae30 \uc704\ud574\uc11c\ub294 arrayOf()\ud568\uc218\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \u00a0\ub530\ub77c\uc11c arrayOf(1,2,3)\uc740 \ubc30\uc5f4 [1,2,3]\uc744 \ub9cc\ub4ed\ub2c8\ub2e4. arrayOfNulls()\ub97c \uc774\uc6a9\ud558\uc5ec null\ub85c \ucc44\uc6cc\uc9c4 \ubc30\uc5f4\uc744 \uc0dd\uc131\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\n\ub610\ub2e4\ub978 \ubc29\ubc95\uc73c\ub85c\ub294 \ubc30\uc5f4\uc758 \ud06c\uae30\uc640 \ucd08\uae30\uac12\uc744 \ub9ac\ud134\ud558\ub294 \ud568\uc218\ub97c \uc778\uc790\ub85c \ubc1b\ub294 Factory\ud568\uc218\ub97c \uc774\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<pre>\/\/ Creates an Array&lt;String&gt; with values [\"0\", \"1\", \"4\", \"9\", \"16\"]\r\nval asc = Array(5, { i -&gt; (i * i).toString() })<\/pre>\n<p>\uc704\uc5d0 \uc5b8\uae09\ud55c\uac83\ucc98\ub7fc [] \uc5f0\uc0b0\uc790\ub97c \uc774\uc6a9\ud574 get, set\uc744 \ub300\uc2e0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\nNote:\uc790\ubc14\uc640\ub294 \ub2ec\ub9ac \ucf54\ud2c0\ub9b0\uc5d0\uc11c \ubc30\uc5f4\uc740 \ubd88\ubcc0\uc785\ub2c8\ub2e4. \uc774\uac83\uc740 \ub7f0\ud0c0\uc784\uc5d0 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \uc624\ub958\ub97c \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c Array&lt;Any&gt;\uc5d0 Array&lt;String&gt;\uc744 \ud560\ub2f9\ud560 \uc218 \uc5c6\ub2e4\ub294\uac83\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc Array&lt;out Any&gt;\ub294 \uac00\ub2a5\ud569\ub2c8\ub2e4.<br \/>\n\ucf54\ud2c0\ub9b0\uc740 \ubc30\uc5f4\uc5d0 \ud2b9\ud654\ub41c \uc6d0\uc2dc\ud0c0\uc785\uc758 \ubc30\uc5f4\ud074\ub798\uc2a4\ub3c4 \ubc15\uc2f1\uc624\ubc84\ud5e4\ub4dc \uc5c6\uc774 \uc81c\uacf5\ud569\ub2c8\ub2e4.<br \/>\nByteARray, ShortArray, IntArray \uae30\ud0c0 \ub4f1\ub4f1<br \/>\n\uc774\ub7f0 \ud074\ub808\uc2a4\ub4e4\uc740 Array\uc640 \uc0c1\uc18d \uad00\uacc4 \uc5c6\uc9c0\ub9cc \uba54\uc18c\ub4dc\ub098 \ud504\ub85c\ud37c\ud2f0\ub294 \uac19\uc2b5\ub2c8\ub2e4. \uc774\ub4e4 \uac01\uac01\uc5d0 \uc0c1\uc751\ud558\ub294 \ub0b4\uc7a5 \ud568\uc218 \ub610\ud55c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>val x: IntArray = intArrayOf(1, 2, 3)\r\nx[0] = x[1] + x[2]<\/pre>\n<h2>Strings<\/h2>\n<p>\ubb38\uc790\uc5f4\uc740 String\uc73c\ub85c \ud45c\ud604\ub429\ub2c8\ub2e4. \ubb38\uc790\uc5f4\uc740 \ubd88\ubcc0\ud558\uba70. \ubb38\uc790\uc5f4\uc758 \uad6c\uc131\uc694\uc18c\ub4e4\uc740 \uc778\ub371\uc2a4 \uc811\uadfc \uac00\ub2a5\ud55c \ubb38\uc790(character)\uc774\ub2e4. s[i]<br \/>\n\ubb38\uc790\uc5f4\uc740 for\ubb38\uc5d0 \uc758\ud574 \ubc18\ubcf5\uc801\uc73c\ub85c \uc811\uadfc \uac00\ub2a5\ud558\ub2e4.<\/p>\n<pre>for (c in str) {\r\n println(c)\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h3>String Literals<\/h3>\n<p>\ucf54\ud2c0\ub9b0\uc740 string literal\uc758 \ub450\uac00\uc9c0 \ud0c0\uc785\uc774 \uc788\ub2e4.<br \/>\nescaped-string: escaped \ubb38\uc790\ub97c \uac16\ub294 \ubb38\uc790\uc5f4<\/p>\n<pre>val s = \"Hello, world!\\n\"<\/pre>\n<p>raw-string: \ub274\ub77c\uc778\uc744 \ud3ec\ud568\ud560\uc218 \uc788\ub294 \uc784\uc758 \ud14d\uc2a4\ud2b8<\/p>\n<pre>val text = \"\"\"\r\n for (c in \"foo\")\r\n print(c)\r\n\"\"\"<\/pre>\n<p>&nbsp;<\/p>\n<h3>String Templates<\/h3>\n<p>\ubb38\uc790\uc5f4\uc740 \ud15c\ud50c\ub9bf\ud45c\ud604\uc744 \ud3ec\ud568\ud55c\ub2e4. \ud15c\ud50c\ub9bf\ud45c\ud604\uc740 \ub2ec\ub7ec \ud45c\uc2dc\uc640 \ud568\uaed8 \uc2dc\uc791\ub41c\ub2e4.<\/p>\n<pre>val i = 10\r\nval s = \"i = $i\" \/\/ evaluates to \"i = 10\"<\/pre>\n<p>\ub610\ub294 \uc911\uad04\ud638 \uc548\uc5d0\uc11c \uc784\uc758\uc801\uc778 \ud45c\ud604\uc774 \uac00\ub2a5\ud558\ub2e4<\/p>\n<pre>val s = \"abc\"\r\nval str = \"$s.length is ${s.length}\" \/\/ evaluates to \"abc.length is 3\"<\/pre>\n<p>\ud15c\ud50c\ub9bf\uc740 \ub450\uac00\uc9c0 \ud0c0\uc785\uc758 \ubb38\uc790\uc5f4\uc5d0\uc11c \ubaa8\ub450 \uc9c0\uc6d0\ud558\uba70 \ub9cc\uc57d \ub2ec\ub7ec \ud45c\uc2dc\ub97c \ub9ac\ud130\ub7f4\ud558\uac8c raw-string\uc5d0\uc11c \ud45c\ud604\ud558\uace0 \uc2f6\ub2e4\uba74 \uc774\ub807\uac8c \uc4f0\uba74\ub41c\ub2e4.<\/p>\n<pre>val price = \"\"\"\r\n${'$'}9.99\r\n\"\"\"<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\uae30\ubcf8\uc790\ub8cc\ud615 Numbers \uc790\ubc14\ub791 \ube44\uc2b7\ud558\uc9c0\ub9cc \ub611\uac19\uc9c0\ub294 \uc54a\ub2e4. \uc608\ub97c \ub4e4\uba74 \uc554\uc2dc\uc801 \ud615\ubcc0\ud658\uc740 \uc81c\uacf5\ud558\uc9c0 \uc54a\ub294\ub2e4. var mInt = 0 var mLong = 0L \/\/mLong = mInt (\ud655\uc7a5\uc2dc\ud0a4\ub294 \uc554\uc2dc\uc801 \ud615\ubcc0\ud658\uc740 \ubd88\uac00\ub2a5) mLong = mInt.toLong() \uc790\ub8cc\ud615 : \ube44\ud2b8 \uc0ac\uc774\uc988 Double : 64 Float : 32 Long : 64 Int : 32 Short : 16 Byte [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[5],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/55"}],"collection":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=55"}],"version-history":[{"count":2,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions"}],"predecessor-version":[{"id":1059,"href":"https:\/\/charlezz.com\/index.php?rest_route=\/wp\/v2\/posts\/55\/revisions\/1059"}],"wp:attachment":[{"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=55"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=55"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/charlezz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=55"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}