{"id":495,"date":"2020-05-18T09:00:18","date_gmt":"2020-05-18T00:00:18","guid":{"rendered":"http:\/\/mobilelab.khu.ac.kr\/?p=495"},"modified":"2020-04-05T18:58:34","modified_gmt":"2020-04-05T09:58:34","slug":"be-dart-programmer-18","status":"publish","type":"post","link":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/05\/18\/be-dart-programmer-18\/","title":{"rendered":"Dart Programmer \ub418\uae30 [18]"},"content":{"rendered":"\n<h4>&lt; Dart \uae30\ucd08\ubb38\ubc95 &#8211; Useful Dart Features &gt;<\/h4>\n\n\n\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 \uc9c0\uae08\uae4c\uc9c0 \uc124\uba85\ud588\ub358 \uc8fc\uc694 Dart \uc5b8\uc5b4\uc758 \ud2b9\uc9d5 \ub4e4\uc5d0 \ucd94\uac00\ud574\uc11c, \uc54c\uc544\ub450\uba74 \uc694\uae34\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uac70\ub098, \uc544\ub2c8\uba74 \ud0c0\uc778\uc774 \ub9cc\ub4e0 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc0ac\uc6a9\ub41c \ub0b4\uc6a9\uc744 \uc774\ud574\ud558\uae30 \uc704\ud55c \uc6a9\ub3c4\ub85c \uba87\uac00\uc9c0 \ubb38\ubc95\ub4e4\uc744 \uc124\uba85\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<h4>Conditional Expression<\/h4>\n\n\n\n<p>if \uad6c\ubb38\uc744 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, \ub9e4\uc6b0 \uac04\ub2e8\ud558\uc9c0\ub9cc \uc870\uac74\uc801\uc778 \ub3d9\uc791\uc744 \uc218\ud589\ud558\ub294 \ubb38\ubc95\uc73c\ub85c \ud615\ud0dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ud569\ub2c8\ub2e4. condition\uc774 true \uc774\uba74 expr1\uc774 \uc218\ud589\ub418\uace0, false \uc774\uba74 expr2\uac00 \uc2e4\ud589 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>condition ? expr1 : expr 2\n<\/pre>\n\n\n\n<h4>Bitwise Operators<\/h4>\n\n\n\n<p>Bitwise \uc5f0\uc0b0\uc790\ub294 \ub370\uc774\ud0c0\ub97c \ube44\ud2b8(bit) \ub2e8\uc704\ub85c \ub2e4\ub8e8\ub294 \uc5f0\uc0b0\uc790\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4. \ube44\ud2b8\ub294 0\uacfc 1\ub9cc \ub098\ud0c0\ub0bc \uc218 \uc788\ub294 \ucef4\ud4e8\ud130 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \ub2e4\ub8f0\uc218 \uc788\ub294 \ucd5c\uc18c \ub2e8\uc704\uc785\ub2c8\ub2e4. 8\uac1c\uc758 \ube44\ud2b8\uac00 \ubaa8\uc774\uba74 \uc6b0\ub9ac\ub294 \ubc14\uc774\ud2b8(byte)\ub77c\uace0 \ubd80\ub985\ub2c8\ub2e4. \ucef4\ud4e8\ud130 \uba54\ubaa8\ub9ac\ub97c \ub300\ubb38\uc790 B\ub85c \ubd80\ub974\ub294 \uc774\uc720\ub294 Byte \ub2e8\uc704\ub85c \ucef4\ud4e8\ud130 \uba54\ubaa8\ub9ac\ub97c \uce74\uc6b4\ud305 \ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 1\ubc14\uc774\ud2b8\ub85c \uc815\uc218 3\uc744 \ubd80\ud638 \uc5c6\ub294 1\ubc14\uc774\ud2b8 \uc815\uc218\ub85c \ub098\ud0c0\ub0b4\uba74 00000110\uc73c\ub85c \ub098\ud0c0\ub0a9\ub2c8\ub2e4. <\/p>\n\n\n\n<p>Bitwise right-shift \uc5f0\uc0b0\uc790\ub294 &#8220;N &gt;&gt; M&#8221;\uc73c\ub85c \ud45c\ud604\ub098\uba70, N\uc758 \uac12\uc744 \ube44\ud2b8 \ub2e8\uc704\ub85c \ubc14\ub010\ud6c4, M \ube44\ud2b8 \ub9cc\ud07c \uc624\ub978\ucabd\uc73c\ub85c \uc774\ub3d9\uc2dc\ud0a8\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4. \uc989 &#8220;3 &gt;&gt; 1&#8243;\uc774\ub77c\uace0 \ud558\uba74, 10\uc9c4\ubc95\uc758 3\uc5d0 \ud574\ub2f9\ud558\ub294 \uc815\uc218\ub97c 8\ube44\ud2b8 \ud615\ud0dc\uc778 00000011\uc73c\ub85c \ud45c\ud604\ud55c \ud6c4, \uc624\ub978\ucabd\uc73c\ub85c \uc77c\uad04 \ud55c\uc790\ub9ac\uc529 \uc774\ub3d9 \ud569\ub2c8\ub2e4. \uadf8\ub807\uac8c \ub418\uba74 00000001\uc774 \ub429\ub2c8\ub2e4. \uc774\ub97c \ub2e4\uc2dc 10\uc804\ubc95\uc758 \uc815\uc218\ub85c \ubc14\uafb8\uba74 1\uc774 \ub429\ub2c8\ub2e4. <\/p>\n\n\n\n<p>Bitwise left-shift \uc5f0\uc0b0\uc790\ub294 &#8220;N &lt;&lt; M&#8221;\uc73c\ub85c \ud45c\ud604\ud558\uba70, bitwise right-shift \uc5f0\uc0b0\uc790\uc640 \ubaa8\ub4e0 \ubd80\ubd84\uc740 \uac19\uc73c\uba70, \uc624\ub978\ucabd\uc774 \uc544\ub2cc \uc67c\ucabd\uc73c\ub85c \uc774\ub3d9\ud558\ub294 \uc810\ub9cc \ub2e4\ub985\ub2c8\ub2e4. \uc989 &#8220;3 &lt;&lt; 1&#8243;\uc774\ub77c\uace0 \ud558\uba74, 10\uc9c4\ubc95\uc758 3\uc5d0 \ud574\ub2f9\ud558\ub294 \uc815\uc218\ub97c 8\ube44\ud2b8 \ud615\ud0dc\uc778 00000011\uc73c\ub85c \ud45c\ud604\ud55c \ud6c4, \uc67c\ucabd\uc73c\ub85c \uc77c\uad04 \ud55c\uc790\ub9ac\uc529 \uc774\ub3d9 \ud569\ub2c8\ub2e4. \uadf8\ub807\uac8c \ub418\uba74 00000110\uc774 \ub429\ub2c8\ub2e4. \uc774\ub97c \ub2e4\uc2dc 10\uc804\ubc95\uc758 \uc815\uc218\ub85c \ubc14\uafb8\uba74 6\uc774 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Bitwise OR \uc5f0\uc0b0\uc790\ub294 &#8220;N | M&#8221;\uc73c\ub85c \ud45c\ud604\ud569\ub2c8\ub2e4. OR \uc5f0\uc0b0\uc790\uc758 \uc758\ubbf8\ub294 \uc55e\uc11c \ubc30\uc6e0\ub358 \uae30\ubcf8 \uc5f0\uc0b0\uc790\uc640 \ub3d9\uc77c\ud569\ub2c8\ub2e4. \ub458 \uc911 \ud558\ub098\uba74 true\uc5ec\ub3c4 \uacb0\uacfc\uac00 true\uac00 \ub418\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4. \ub2e8 bitwise \uc5f0\uc0b0\uc790\uac00 \ub418\uba74, \uc55e\uc11c\uc758 bitwise shift \uc5f0\uc0b0\uc790 \ucc98\ub7fc, 0\uacfc 1\uc758 \uc774\uc9c4\ubc95\uc73c\ub85c \ud3bc\uce5c\ud6c4, \uac01\uac01\uc758 \uc790\ub9ac\uc5d0 \uc788\ub294 \ube44\ud2b8 \uac12\uc744 \ud655\uc778\ud574\uc11c, \uac19\uc740 \uc790\ub9ac\uc758 \ube44\ud2b8 \uac12 \uc911 1\uc774 \ud558\ub098\ub77c\ub3c4 \uc788\uc73c\uba74, \uacb0\uacfc\ub85c 1\ub85c \ucc98\ub9ac\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c, &#8220;3 | 4&#8243;\ub85c \ud558\uba74, &#8220;00000011 | 00000100&#8243;\uc774 \ub418\uace0, \uacb0\uacfc\ub97c &#8220;00000111&#8221;\uc774 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Bitwise AND \uc5f0\uc0b0\uc790\ub294 &#8220;N &amp; M&#8221;\uc73c\ub85c \ud45c\ud604\ud569\ub2c8\ub2e4. AND \uc5f0\uc0b0\uc790\uc758 \uc758\ubbf8\ub294 \uc55e\uc11c \ubc30\uc6e0\ub358 \uae30\ubcf8 \uc5f0\uc0b0\uc790\uc640 \ub3d9\uc77c\ud569\ub2c8\ub2e4. \ub458 \ubaa8\ub450 true\uc5ec\uc57c \uacb0\uacfc\uac00 true\uac00 \ub418\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4. \ub2e8 bitwise \uc5f0\uc0b0\uc790\uac00 \ub418\uba74, \uc55e\uc11c\uc758 bitwise shift \uc5f0\uc0b0\uc790 \ucc98\ub7fc, 0\uacfc 1\uc758 \uc774\uc9c4\ubc95\uc73c\ub85c \ud3bc\uce5c\ud6c4, \uac01\uac01\uc758 \uc790\ub9ac\uc5d0 \uc788\ub294 \ube44\ud2b8 \uac12\uc744 \ud655\uc778\ud574\uc11c, \uac19\uc740 \uc790\ub9ac\uc758 \ube44\ud2b8 \uac12\uc5d0 \ubaa8\ub450 1\uc774 \uc788\uc73c\uba74, \uacb0\uacfc\ub85c 1\ub85c \ucc98\ub9ac\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c, &#8220;3 &amp; 4&#8243;\ub85c \ud558\uba74, &#8220;00000011 &amp; 00000100&#8243;\uc774 \ub418\uace0, \uacb0\uacfc\ub97c &#8220;00000000&#8221;\uc774 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>NaN &amp; Infinity Constant<\/h4>\n\n\n\n<p>Dart \uc5b8\uc5b4\uc5d0\ub294 \uba87\uac00\uc9c0 \uc0c1\uc218\uac00 \uc874\uc7ac\ud569\ub2c8\ub2e4. NaN\uc740 Not-a-Number\uc758 \uc57d\uc790\ub85c\uc368 \uc22b\uc790\uac00 \uc544\ub2c8\ub2e4 \ub77c\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, 0\uc744 0\uc73c\ub85c \ub098\ub208\ub2e4\ub294 \uac83\uacfc \uac19\uc774 \uc758\ubbf8\uac00 \uc5c6\ub294 \uacbd\uc6b0\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774\ub7f0 \uacbd\uc6b0\ub97c \ub300\ube44\ud574\uc11c int\uc640 double \ub370\uc774\ud0c0 \ud0c0\uc785\uc740 \uac1d\uccb4\uac00 \uac00\uc9c0\uace0 \uc788\ub294 \uac12\uc774 \uc720\uc758\ubbf8\ud55c\uc9c0 \uc544\ub2cc\uc9c0\ub97c \uac80\uc0ac\ud558\ub294 isNan\uc774\ub77c\ub294 property\ub97c \uc9c0\uc6d0\ud558\uba70, \uc720\uc758\ubbf8\ud55c \uac12\uc774 false\ub97c \uc758\ubbf8\uac00 \uc788\ub294 \uac12\uc774\uba74 false\ub97c return \ud569\ub2c8\ub2e4. \uc720\uc0ac\ud558\uac8c 1\uc744 0\uc73c\ub85c \ub098\ub204\ub294 \uacbd\uc6b0\ub294 \uc218\ud559\uc5d0\uc11c \ubd84\ubaa8\uac00 0\uc5d0 \uac00\uae4c\uc640 \uc9c0\ub294 \uac83\uc744 \uc758\ubbf8\ud574\uc11c, \ubb34\ud55c\ub300\ub97c \ub098\ud0c0\ub0b4\ub294 Infinity\ub97c \ucd9c\ub825\ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<h4>Unicode Presentation (Runes)<\/h4>\n\n\n\n<p>Dart\ub294 \uc18c\uc2a4\ucf54\ub4dc \ubc0f \uac01\uc885 \ubb38\uc790\ub4e4\uc744 UTF(Unicode Transformation Format)-16 \ucf54\ub529 \ubc29\uc2dd\uc73c\ub85c \ud45c\ud604 \ud569\ub2c8\ub2e4. \ucf54\ub529\uc774\ub780 \uc0ac\ub78c\uc774 \ubcfc \uc218 \uc788\ub294 \uae30\ud638\ub4e4\uc744 \ucef4\ud4e8\ud130\uac00 \ucc98\ub9ac\ud558\uae30 \uc6a9\uc774\ud55c \uc22b\uc790\ub4e4\ub85c \ub9e4\ud551\ud55c \uac83 \uc785\ub2c8\ub2e4. \uc720\uba85\ud55c \ucf54\ub529\uc740 ASCII(American Standard Code for Information Interchange)\uac00 \uc788\uc73c\uba70, \ubbf8\uad6d\uc5d0\uc11c \uc601\uc5b4\uc640 \uc22b\uc790, \uadf8\ub9ac\uace0 \uae30\ud638\ub97c 256\uac1c\uc758 \ucf54\ub4dc\uc5d0 \ub123\uc740 \uac83 \uc785\ub2c8\ub2e4. \uc601\uc5b4\uad8c \uad6d\uac00\uac00 \uc544\ub2cc \ud55c\uad6d\uacfc \uac19\uc740 \uacbd\uc6b0\ub294 \ucd94\uac00\uc801\uc778 \ube44\ud2b8\uc218\ub85c \uc774\ub8e8\uc5b4\uc9c4 \ucf54\ub4dc\uac00 \ud544\uc694\ud588\uace0, \uadf8 \uc911 \ud558\ub098\uac00 Unicode \uc785\ub2c8\ub2e4. Dart\uc758 UTF-16\uacfc Unicode \uac04\uc758 \ucc28\uc774\ub85c, Dart\uc5d0\uc11c\ub294 Unicode\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud574\uc11c\ub294 \ubb38\uc790\uc5f4 \uc55e\uc5d0 \\u \uae30\ud638\ub97c \ucd94\uac00\ud574\uc57c \ud569\ub2c8\ub2e4. \ud1b5\uc0c1 16\ube44\ud2b8\uc758 Unicode\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud574\uc11c\ub294 \\u2665 (\ud558\ud2b8 \uae30\ud638 \uc785\ub2c8\ub2e4) \ucc98\ub7fc \ud569\ub2c8\ub2e4. \uc774\ubcf4\ub2e4 \ud070 \ube44\ud2b8 \uc218\uc758 Unicode\ub97c \ud45c\ud604\ud558\uae30 \uc704\ud574\uc11c\ub294 \\u{1f600} \ucc98\ub7fc { &#8230; } (\uc2a4\ub9c8\uc77c \uae30\ud638 \uc785\ub2c8\ub2e4) \uae30\ud638\ub85c \ucf54\ub4dc \uac12\uc744 \uac10\uc2f8 \uc90d\ub2c8\ub2e4. Unicode\uc640 \uac19\uc740 \uc11c\ub85c \ub2e4\ub978 \ud0c0\uc785\uc758 \ubb38\uc790\uc5f4 \ucc98\ub9ac\ub294 \uc774\ud6c4 library\uc5d0\uc11c \uc124\uba85\ud560 characters \ud328\ud0a4\uc9c0\ub97c \uc0ac\uc6a9\ud558\uba74 \uc880 \ub354 \ubcf5\uc7a1\ud558\uace0 \uc720\uc6a9\ud55c \uae30\uc220\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>Cascade Operator <\/h4>\n\n\n\n<p>\ud074\ub798\uc2a4\uc758 \uba54\uc18c\ub4dc\ub97c \uc218\ud589\ud560 \ub54c, \uc55e\uc758 \uacb0\uacfc\ub97c \ub4a4\uc5d0\uc11c \uc774\uc5b4 \ubc1b\uc544 \uc2e4\ud589\ud558\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uc5b4 A.method1().method2()\uc640 \uac19\uc774 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 A \uac1d\uccb4\uc758 \uba64\ubc84 \uba54\uc18c\ub4dc\uc778 method1\uc744 \uc2e4\ud589\ud558\uace0, \uc774\uc758 \uacb0\uacfc\uac00 \ub2e4\uc2dc \uc0c8\ub85c\uc6b4 \uac1d\uccb4\uac00 \ub418\uc5b4, \uc774 \uc0c8\ub85c\uc6b4 \uac1d\uccb4\uc758 \uba64\ubc84 \uba54\uc18c\ub4dc\uc778 method2\ub97c \uc2e4\ud589 \ud558\ub77c\ub294 \uc758\ubbf8 \uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 method1\uc758 \uacb0\uacfc\uac00 \uc815\uc218\ub77c\uba74, \uc815\uc218 \uac1d\uccb4\uc758 method2\ub97c \uc2e4\ud589 \ud55c\ub2e4\ub294 \uc758\ubbf8 \uc785\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\uc774\uc640 \ub2e4\ub974\uac8c, A\uc758 method1\uc744 \uc2e4\ud589\ud558\uace0, \uc774\uc5b4\uc11c \ub2e4\uc2dc A\uc758 method2\ub97c \uc2e4\ud589\ud558\uace0 \uc2f6\uc744\ub54c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7f0 \uacbd\uc6b0\ub97c \uc704\ud55c Dart \ubb38\ubc95\uc774 \uc788\uc73c\ub2c8, &#8220;..&#8221; \uc785\ub2c8\ub2e4. \uc608\ub97c\ub4e4\uc5b4 List&lt;String&gt; \ud0c0\uc785\uc758 \ube44\uc5b4\uc788\ub294 myList2\uac00 \uc788\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4. \uccab\ubc88\uc9f8 \ud558\uace0 \uc2f6\uc740 \ub3d9\uc791\uc740 add(&#8220;Go&#8221;)\ub85c element\ub97c \ud558\ub098 \ucd94\uac00\ud558\uace0, \ub2e4\uc74c\uc73c\ub85c addAll([&#8220;C++&#8221;, &#8220;Dart&#8221;, &#8220;Python&#8221;])\ub97c \ud1b5\ud574\uc11c 3\uac1c\uc758 element\uac00 \ub4e4\uc5b4\uac04 List\ub97c \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \uc8fc\uc5b4\uc11c, \uc774\uc548\uc758 3\uac1c element\ub97c \ub2e4\uc2dc List\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc774 List\ub97c Sort\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4. \uac01\uac01\uc744 \ubcc4\ub3c4\uc758 \ubb38\uc7a5\uc73c\ub85c \uc791\uc131\ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc, Dart\ub294 \uc704\uc758 \uc791\uc5c5\uc744 &#8220;..&#8221; \uc5f0\uc0b0\uc790\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub2e4\uc74c\ucc98\ub7fc \ud504\ub85c\uadf8\ub798\ubc0d \ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>  myList2\n  ..add(\"Go\")\n  ..addAll([\"C++\", \"Dart\", \"Python\"])\n  ..sort((a,b) =&gt; a.compareTo(b));\n<\/pre>\n\n\n\n<p>\uc0ac\uc2e4 cascade \uc5f0\uc0b0\uc790\ub77c\uace0 \ub9d0\uc740 \ud588\uc9c0\ub9cc, &#8220;..&#8221; \ubb38\ubc95\uc740 Dart \uace0\uc720\uc758 \ubb38\ubc95 \uc911 \ud558\ub098\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>forEach Function<\/h4>\n\n\n\n<p>forEach \ud568\uc218\ub294 List, Set \ub4f1\uacfc \uac19\uc774 \ubcf5\uc218\uc758 \ub370\uc774\ud0c0\ub97c \uc800\uc7a5\ud558\ub294 \ub370\uc774\ud0c0 \ud0c0\uc785\uc5d0 \ud65c\uc6a9 \uac00\ub2a5\ud55c \uba64\ubc84 \uba54\uc18c\ub4dc \uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc801\uc6a9 \ud558\uace0\uc790 \ub370\uc774\ud0c0 \ud0c0\uc785\uc758 \uba64\ubc84 \uba54\uc18c\ub4dc\ub85c \uc81c\uacf5\uc774 \ub418\ub294\uc9c0 \ud655\uc778\uc744 \ud574\uc57c \ud569\ub2c8\ub2e4. \uc9c0\uc6d0\ud558\ub294 \uae30\ub2a5\uc740, \uc774\ub984\uc774 \uc758\ubbf8 \ud558\ub4ef\uc774, \ubc18\ubcf5\uc801\uc73c\ub85c \ub370\uc774\ud0c0 \ud0c0\uc785 \uc548\uc758 \uccab\ubc88\uc9f8 \ubd80\ud130 \ub9c8\uc9c0\ub9c9 element\uc5d0 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \uc804\ub2ec\ubc1b\ub294 \ud568\uc218\ub97c \uc801\uc6a9\ud558\ub294 \uac83 \uc785\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\uc608\ub4e4 \ub4e4\uc5b4 \uc704\uc758 myList2\ub294 \ucd5c\uc885\uc801\uc73c\ub85c [&#8220;C++&#8221;, &#8220;Dart&#8221;, &#8220;Go&#8221;, &#8220;Python&#8221;] \uac12\uc744 \uc800\uc7a5\ud558\ub294 \ub9ac\uc2a4\ud2b8 \uc785\ub2c8\ub2e4. \uc5ec\uae30\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc740 \ud568\uc218\ub97c \uc801\uc6a9\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc758 printItem \ud568\uc218\ub294 \uac04\ub2e8\ud569\ub2c8\ub2e4. \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \ubb38\uc790\uc5f4 \ud558\ub098\ub97c \ubc1b\uc544\uc11c \ud654\uba74\uc5d0 \ucd9c\ub825\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>void printItem(String item) {\n  print(item);\n}\n<\/pre>\n\n\n\n<p>\uc774\uc81c myList2\uc5d0 printItem \ud568\uc218\ub97c \uc801\uc6a9\ud558\uba74, myList2.forEach(printItem); \ucc98\ub7fc \ud558\uba74 \ub429\ub2c8\ub2e4. \uc774\ub7ec\uba74, myList2\uc758 \uac01 element\ub97c printItem \ud568\uc218\uc758 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \uc804\ub2ec\ud558\ub294 \uc791\uc5c5\uc744 \uccab\ubc88\uc9f8 element \ubd80\ud130 \ub9c8\uc9c0\ub9c9 element \uae4c\uc9c0 \uc218\ud589\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>forEach \ud568\uc218\ub294 Function \uc124\uba85\uc5d0\uc11c \uc5b8\uae09\ud55c anonymous function\uc744 \uc801\uc6a9\ud558\ub294 \ub300\ud45c\uc801\uc778 \uc0ac\ub840 \uc911 \ud558\ub098\uc785\ub2c8\ub2e4. \ub530\ub77c\uc11c printItem \ud568\uc218\uc640 forEach \ud568\uc218\ub97c anonymous function \ud615\ud0dc\ub85c \uad6c\ud604\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>myList2.forEach((item) =&gt; print(item));\n<\/pre>\n\n\n\n<h4>Nested Function<\/h4>\n\n\n\n<p>Dart \uc5b8\uc5b4\ub294 \ud2b9\uc774\ud558\uac8c \ud568\uc218 \uc548\uc5d0\uc11c \ud568\uc218\ub97c \ub9cc\ub4e4\uc218 \uc788\ub294 \uc5b8\uc5b4\uc785\ub2c8\ub2e4. \ub9ce\uc774 \uc0ac\uc6a9\ud558\uc9c0\ub294 \uc54a\uaca0\uc9c0\ub9cc, \uadf8\ub7f4\uc218\uac00 \uc788\ub2e4\ub294 \uc810\uc744 \uae30\uc5b5\ud574 \ub450\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>Default Return Value (null)<\/h4>\n\n\n\n<p>\uc544\ub798\uc640 \uac19\uc774 \uc544\ubb34\ub7f0 return \uac12\uc774 \uc5c6\ub294 \ud568\uc218\uac00 \uc788\ub2e4\uba74, Dart \uc5b8\uc5b4\ub294 \uc790\ub3d9\uc73c\ub85c &#8220;return null;&#8221; \uad6c\ubb38\uc744 \ud568\uc218\uc758 \ub05d \ubd80\ubd84\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c, return \uac12\uc774 \uc5c6\ub294 \ud568\uc218\ub294 null\uc744 return \ud55c\ub2e4\uace0 \ubcf4\uc544\ub3c4 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>doNothing() {}\n<\/pre>\n\n\n\n<h4>Operator Precedence<\/h4>\n\n\n\n<p>Dart \uc5b8\uc5b4\uc758 \uc5f0\uc0b0\uc790 \ub4e4\uc740 \uc218\ud559\uc758 \uc5f0\uc0b0\uc790 \ub4e4\uacfc \uc720\uc0ac\ud558\uac8c \uc6b0\uc120\uc21c\uc704\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uba3c\uc800 \uc218\ud559\uc5d0\uc11c\uc758 +, &#8211; \uc5f0\uc0b0 \uc21c\uc704\uac00 \uac19\uc73c\uba74, \uc624\ub978\ucabd\uc5d0\uc11c \uc67c\ucabd\uc73c\ub85c \ud558\ub294 \uac83\uc740 \uc218\ud559\uacfc \uac19\uc2b5\ub2c8\ub2e4. +, &#8211; \uc5f0\uc0b0\uc790\uac00 *, \/ \uc5f0\uc0b0\uc790 \ubcf4\ub2e4 \ub0ae\uc740 \uac83\ub3c4 \ub3d9\uc77c\ud569\ub2c8\ub2e4. \uc218\ud559\uacfc \ub2e4\ub974\uac8c \ub2e4\uc591\ud55c \uc5f0\uc0b0\uc790 \ub4e4\uc774 \ub9ce\uc774 \ub098\ud0c0\ub098\ub294 \ub9cc\ud07c \uacf5\uc2dd \uc0ac\uc774\ud2b8\uc758 \uc5f0\uc0b0\uc790 \uc6b0\uc120\uc21c\uc704 \uc815\ubcf4\ub97c \ud55c\ubc88 \uc0b4\ud3b4 \ubcf4\ub294 \uac83\uc774 \uc88b\uaca0\uc2b5\ub2c8\ub2e4 [<a href=\"https:\/\/dart.dev\/guides\/language\/language-tour#operators\">\ucc38\uc870<\/a>].<\/p>\n\n\n\n<h4>Assignment Operators<\/h4>\n\n\n\n<p>a = a + 1; \ucc98\ub7fc \ud504\ub85c\uadf8\ub7a8\uc744 \uac1c\ubc1c\ud558\ub2e4 \ubcf4\uba74 \ud2b9\uc815 \ubcc0\uc218\uc758 \uac12\uc744 \uc5c5\ub370\uc774\ud2b8 \ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc2b5\ub2c8\ub2e4. \uc774\ub54c a += 1;\ub85c \ud558\uba74 \ub3d9\uc77c\ud55c \ud6a8\uacfc\ub97c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \uac04\ub2e8\ud558\uac8c \ub9cc\ub4dc\ub294 \uc5f0\uc0b0\uc790\ub294 -=, \/=, %=, &gt;&gt;=, ^=, *=, ~\/=, &lt;&lt;=, &amp;=, |=\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c a ??= 1 \ucc98\ub7fc \ud558\uba74, ??= \uc5f0\uc0b0\uc790\ub294 a\uac00 null \uc778 \uacbd\uc6b0\uc5d0 \ub300\ud574\uc11c\ub9cc 1\uc744 a\uc5d0 \uc800\uc7a5\ud558\uba70, \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \uc544\ubb34\ub7f0 \uc791\uc5c5\uc744 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<h4>Not Operators<\/h4>\n\n\n\n<p>\ub9cc\uc57d true \uac12\uc744 \uc800\uc7a5\ud55c \ubcc0\uc218 a\uac00 \uc788\uc744\ub54c, !a\ub85c \ud558\uba74 false\uac00 \ub429\ub2c8\ub2e4. \uc989 ! \uc5f0\uc0b0\uc790\ub294 not\uc758 \uc758\ubbf8\ub97c \uac00\uc9d1\ub2c8\ub2e4. \ubcc0\uc218 \ucc28\uc6d0\uc774 \uc544\ub2cc \ube44\ud2b8 \ucc28\uc6d0\uc5d0 \ub300\ud574\uc11c \uc774\ub7f0 \uc791\uc5c5\uc744 \uc6d0\ud55c\ub2e4\uba74, ~ \uc5f0\uc0b0\uc790\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub370\uc774\ud0c0\ub97c \ube44\ud2b8\ub85c \ud3bc\uce5c\ud6c4 0\uc744 1\ub85c, 1\uc744 0\uc73c\ub85c \ubc14\uafb8\ub294 bitwise \uc5f0\uc0b0\uc790 \uc785\ub2c8\ub2e4. <\/p>\n\n\n\n<h4>Example Program<\/h4>\n\n\n\n<p>\uc55e\uc11c \uc124\uba85\ud55c \uc0ac\ud56d\ub4e4\uc744 \ud558\ub098 \ud558\ub098 \uac04\ub2e8\ud55c \uc608\uc81c\ub85c \ud480\uc5b4\ub0b8 \ud504\ub85c\uadf8\ub7a8\uc774 \uc544\ub798\uc758 darttutorial-18-01.dart  \uc785\ub2c8\ub2e4. \uc704\uc758 \ub0b4\uc6a9\uc744 \uc774\ud574\ud558\uace0, \uba3c\uc800 \uacb0\uacfc\ub97c \uc608\uce21\ud574 \ubcf4\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>\n\/\/ darttutorial-18-01.dart \n\n\/\/ #6 forEach function\nvoid printItem(String item) {\n  print(\"#6 I \\u2665 \" +  item + \"!\");\n}\n\nvoid main() {\n  \/\/ #1 Conditional Expression\n  var myCondition1 = true;\n  var myCondition2 = myCondition1 ? false : true;\n  print(\"#1 $myCondition1 $myCondition2\");\n\n  \/\/ #2 Bitwise Operators\n  var myNum1 = 3 << 1; \/\/ 00000011 << 1       == 00000110\n  var myNum2 = 3 >> 1; \/\/ 00000011 >> 1       == 00000001\n  var myNum3 = 3 | 4;  \/\/ 00000011 | 00000100 == 00000111\n  var myNum4 = 3 & 4;  \/\/ 00000011 & 00000100 == 00000000\n  print(\"#2 $myNum1 $myNum2 $myNum3 $myNum4\");\n\n  \/\/ #3 NaN Constant\n  var myNaN = 0 \/ 0;\n  var myInfinity = 1 \/ 0;\n  print(\"#3 $myNaN $myInfinity\");\n\n  \/\/ #4 Unicode presentation\n  var myUnicode1 = '\\u2665'; \/\/ 4-digit hexadecimal\n  var myUnicode2 = '\\u{1f600}'; \/\/ more or less than 4-digit\n  print(\"#4 $myUnicode1 $myUnicode2\");\n\n  \/\/ #5 Cascade (..) operator\n  List<String> myList2 = [];\n  myList2\n  ..add(\"Go\")\n  ..addAll([\"C++\", \"Dart\", \"Python\"])\n  ..sort((a,b) => a.compareTo(b));\n  print(\"#5 $myList2\");\n\n  \/\/ #6 forEach function - 1\n  myList2.forEach(printItem);\n\n  \/\/ #7 forEach function - 2\n  myList2.forEach((item) => print(\"#7 I \\u2665 \" +  item + \"!\"));\n\n  \/\/ #8 forEach function\n  void printItemNested(String item) {\n    print(\"#8 I \\u2665 \" +  item + \"!\");\n  }\n  myList2.forEach(printItemNested);\n\n  \/\/ #9 Not operators\n  var myBool1 = true;\n  var myBool2 = 0;\n  print(\"#9 ${!myBool1} ${~myBool2}\");\n}\n<\/pre>\n\n\n\n<p>\uc704\uc758 darttutorial-18-01.dart  \ud504\ub85c\uadf8\ub7a8\uc758 \uc218\ud589 \uacb0\uacfc\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ud558\uc600\uc2b5\ub2c8\ub2e4. \ubcf8\uc778\uc774 \uc0dd\uac01\ud55c \uacb0\uacfc\uc640 \ub3d9\uc77c\ud55c\uc9c0 \uc774\ud574\ud574 \ubcf4\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n\n\n\n<pre>#1 true false\n#2 6 1 7 0\n#3 NaN Infinity\n#4 \u2665 \ud83d\ude00\n#5 [C++, Dart, Go, Python]\n#6 I \u2665 C++!\n#6 I \u2665 Dart!\n#6 I \u2665 Go!\n#6 I \u2665 Python!\n#7 I \u2665 C++!\n#7 I \u2665 Dart!\n#7 I \u2665 Go!\n#7 I \u2665 Python!\n#8 I \u2665 C++!\n#8 I \u2665 Dart!\n#8 I \u2665 Go!\n#8 I \u2665 Python!\n#9 false -1\n<\/pre>\n\n\n\n<h4>\ub9c8\ubb34\ub9ac<\/h4>\n\n\n\n<p>Dart \uc5b8\uc5b4\uc758 \uae30\ubcf8 \ubb38\ubc95\uc744 \uc54c\uc544\uc624\uba74\uc11c, \uc720\uc6a9\ud558\uc9c0\ub9cc \uc0c1\ub300\uc801\uc73c\ub85c \ube44\uc911\uc774 \uc801\uc5c8\ub358 \ub0b4\uc6a9\ub4e4\uc744 \ubaa8\uc544\uc11c, \uc774\ubc88 \uae00\uc5d0\uc11c \uc124\uba85\uc744 \ud558\uc600\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\ud558\ub294 \ud504\ub85c\uadf8\ub7a8\uc5d0 \ub530\ub77c\uc11c \uc0ac\uc6a9 \uc548\ud560\uc218\ub3c4 \uc788\ub294 \ubb38\ubc95\ub4e4 \uc774\uc9c0\ub9cc, \uc54c\uc544\ub450\uba74 \uc720\uc6a9\ud55c \ubb38\ubc95\ub4e4\uc774\ub2c8 \ube60\ud2b8\ub9ac\uc9c0 \uc54a\uace0 \uc774\ud574 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2020\/01\/b05-1.jpg\" alt=\"\" class=\"wp-image-267\" width=\"139\" height=\"50\"\/><\/figure><\/div>\n\n\n\n<p><strong>Creative Commons License<\/strong> (<strong>CC BY-NC-ND<\/strong>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt; Dart \uae30\ucd08\ubb38\ubc95 &#8211; Useful Dart Features &gt; \uc774 \uae00\uc5d0\uc11c\ub294 \uc9c0\uae08\uae4c\uc9c0 \uc124\uba85\ud588\ub358 \uc8fc\uc694 Dart \uc5b8\uc5b4\uc758 \ud2b9\uc9d5 \ub4e4\uc5d0 \ucd94\uac00\ud574\uc11c, \uc54c\uc544\ub450\uba74 \uc694\uae34\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uac70\ub098, \uc544\ub2c8\uba74 \ud0c0\uc778\uc774 \ub9cc\ub4e0 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc0ac\uc6a9\ub41c \ub0b4\uc6a9\uc744 \uc774\ud574\ud558\uae30 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":961,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[3],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/495"}],"collection":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=495"}],"version-history":[{"count":5,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/495\/revisions"}],"predecessor-version":[{"id":962,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/495\/revisions\/962"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/media\/961"}],"wp:attachment":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=495"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}