{"id":246,"date":"2021-11-05T20:25:20","date_gmt":"2021-11-05T12:25:20","guid":{"rendered":"https:\/\/blog.indeex.club\/?p=246"},"modified":"2021-12-10T11:27:50","modified_gmt":"2021-12-10T03:27:50","slug":"dart%e8%af%ad%e6%b3%95%e9%87%8d%e6%96%b0%e6%95%b4%e7%90%86","status":"publish","type":"post","link":"https:\/\/blog.indeex.club\/index.php\/2021\/11\/05\/dart%e8%af%ad%e6%b3%95%e9%87%8d%e6%96%b0%e6%95%b4%e7%90%86\/","title":{"rendered":"Dart\u8bed\u6cd5\u91cd\u65b0\u6574\u7406"},"content":{"rendered":"<hr \/>\n<p>\u5f88\u591a\u5e74\u524d\u7b80\u5355\u603b\u7ed3\u4e86Dart\u7684\u4e00\u4e9b\u7279\u70b9\uff0c\u90fd\u662f\u57fa\u4e8e\u5f53\u65f6\u7684\u4e00\u4e9b\u4f7f\u7528\u60c5\u51b5\uff0c\u4ece\u65b0\u68b3\u7406\u4e0b\u3002<\/p>\n<h2>Dart\u7279\u70b9<\/h2>\n<blockquote>\n<ul>\n<li>\u5728Dart\u4e2d\uff0c\u4e00\u5207\u90fd\u662f\u5bf9\u8c61\uff0c\u6240\u6709\u7684\u5bf9\u8c61\u90fd\u662f\u7ee7\u627fObject\uff0c\u4e5f\u5c31\u662f\u6240\u6709\u80fd\u591f\u4f7f\u7528\u53d8\u91cf\u5f15\u7528\u7684\u90fd\u662f\u5bf9\u8c61\uff0c\u6bcf\u4e2a\u5bf9\u8c61\u90fd\u662f\u4e00\u4e2a\u4e86\u7c7b\u7684\u5b9e\u4f8b\u3002\u5728Dart\u4e2d\u751a\u81f3\u6570\u5b57\u3001\u65b9\u6cd5\u548cnull\u90fd\u662f\u5bf9\u8c61\u3002<\/p>\n<\/li>\n<li>\n<p>\u6ca1\u6709\u8d4b\u521d\u503c\u7684\u53d8\u91cf\u90fd\u4f1a\u6709\u9ed8\u8ba4\u503cnull<\/p>\n<\/li>\n<li>\n<p>\u6807\u8bc6\u7b26\u53ef\u4ee5\u4ee5\u5b57\u6bcd\u6216\u8005_\u4e0b\u5212\u7ebf\u5f00\u5934\uff0c\u540e\u9762\u53ef\u4ee5\u662f\u5176\u4ed6\u5b57\u7b26\u548c\u6570\u5b57\u7684\u7ec4\u5408\u3002<\/p>\n<\/li>\n<li>\n<p>Dart\u652f\u6301\u9876\u7ea7\u65b9\u6cd5\uff0c\u5982main\u65b9\u6cd5\uff0c\u540c\u65f6\u8fd8\u652f\u6301\u5728\u7c7b\u4e2d\u5b9a\u4e49\u51fd\u6570(\u9759\u6001\u51fd\u6570\u548c\u5b9e\u4f8b\u51fd\u6570)\uff0c\u8fd8\u53ef\u4ee5\u5728\u65b9\u6cd5\u4e2d\u5b9a\u4e49\u65b9\u6cd5\uff0cDart\u652f\u6301\u9876\u5c42\u53d8\u91cf\uff0c\u4e5f\u652f\u6301\u7c7b\u53d8\u91cf\u6216\u5bf9\u8c61\u53d8\u91cf\u3002<\/p>\n<\/li>\n<li>\n<p>Dart\u6ca1\u6709public\u3001protected\u3001private\u5173\u952e\u5b57\u3002\u5982\u679c\u67d0\u4e2a\u53d8\u91cf\u4ee5\u4e0b\u5212\u7ebf_\u5f00\u5934\uff0c\u4ee3\u8868\u8fd9\u4e2a\u53d8\u91cf\u662f\u5728\u5e93\u4e2d\u662f\u79c1\u6709\u7684\u3002<\/p>\n<\/li>\n<li>\n<p>Dart\u4e2d\u7684\u7c7b\u548c\u63a5\u53e3\u90fd\u662f\u7edf\u4e00\u7684\uff0c\u7c7b\u5373\u662f\u63a5\u53e3\uff0c\u4f60\u53ef\u4ee5\u7ee7\u627f\u4e00\u4e2a\u7c7b\uff0c\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u4e00\u4e2a\u7c7b\uff0c\u81ea\u7136\u4e5f\u5305\u542b\u4e86\u826f\u597d\u7684\u9762\u5411\u5bf9\u8c61\u548c\u5e76\u53d1\u7f16\u7a0b\u7684\u652f\u6301\u3002<\/p>\n<\/li>\n<li>\n<p>final\u7684\u503c\u53ea\u80fd\u88ab\u8bbe\u5b9a\u4e00\u6b21\u3002const\u662f\u4e00\u4e2a\u7f16\u8bd1\u65f6\u7684\u5e38\u91cf\uff0c\u53ef\u4ee5\u901a\u8fc7const\u6765\u521b\u5efa\u5e38\u91cf\u503c\uff0cvar n = const[],\u8fd9\u91ccn\u8fd8\u662f\u4e00\u4e2a\u53d8\u91cf\uff0c\u53ea\u662f\u88ab\u8d4b\u503c\u4e86\u4e00\u4e2a\u5e38\u91cf\u503c\uff0c\u5b83\u8fd8\u662f\u53ef\u4ee5\u7b26\u5176\u4ed6\u503c\u3002\u5b9e\u4f8b\u53d8\u91cf\u53ef\u4ee5\u662ffinal,\u4f46\u4e0d\u80fd\u662fconst\u3002<\/p>\n<\/li>\n<li>\n<p>Dart\u662f\u5f3a\u7c7b\u578b\u8bed\u8a00\uff0c\u4f46\u53ef\u4ee5\u7528var\u6216\u8005dynamic\u6765\u58f0\u660e\u4e00\u4e2a\u53d8\u91cf\uff0cDart\u4f1a\u81ea\u52a8\u63a8\u65ad\u5176\u6570\u636e\u7c7b\u578b\uff0cdynamic\u7c7b\u4f3cC#<\/p>\n<\/li>\n<li>\n<p>\u4f7f\u7528\u9759\u6001\u7c7b\u578b\u53ef\u4ee5\u66f4\u6e05\u6670\u8868\u9762\u4f60\u7684\u610f\u56fe\uff0c\u5e76\u4e14\u53ef\u4ee5\u8ba9\u9759\u6001\u5206\u6790\u5de5\u5177\u6765\u5206\u6790\u4f60\u7684\u4ee3\u7801\u3002<\/p>\n<\/li>\n<li>\n<p>Dart\u5728\u8fd0\u884c\u4e4b\u524d\u4f1a\u5148\u89e3\u6790\u4f60\u7684\u4ee3\u7801\u3002\u4f60\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u7c7b\u578b\u6216\u8005\u7f16\u8bd1\u65f6\u5e38\u91cf\u6765\u5e2e\u52a9Dart\u53bb\u6355\u83b7\u5f02\u5e38\u4ee5\u53ca\u8ba9\u4ee3\u7801\u8fd0\u884c\u7684\u66f4\u9ad8\u6548\u3002<\/p>\n<\/li>\n<li>\n<p>Dart\u5de5\u5177\u53ef\u4ee5\u6307\u51fa\u4e24\u79cd\u95ee\u9898\uff1a\u8b66\u544a\u548c\u9519\u8bef\u3002\u8b66\u544a\u53ea\u662f\u8bf4\u4f60\u7684\u4ee3\u7801\u53ef\u80fd\u6709\u95ee\u9898\uff0c\u4f46\u662f\u5e76\u4e0d\u4f1a\u963b\u6b62\u4f60\u7684\u4ee3\u7801\u6267\u884c\u3002\u9519\u8bef\u53ef\u4ee5\u662f\u7f16\u8bd1\u65f6\u9519\u8bef\u4e5f\u53ef\u4ee5\u662f\u8fd0\u884c\u65f6\u9519\u8bef\u3002\u9047\u5230\u7f16\u8bd1\u65f6\u9519\u65f6\uff0c\u4ee3\u7801\u5c06\u65e0\u6cd5\u6267\u884c\uff1b\u8fd0\u884c\u65f6\u9519\u8bef\u5c06\u4f1a\u5728\u8fd0\u884c\u4ee3\u7801\u7684\u65f6\u5019\u5bfc\u81f4\u4e00\u4e2a\u5f02\u5e38\u3002<\/p>\n<\/li>\n<\/ul>\n<\/blockquote>\n<h2>Dart\u8bed\u6cd5<\/h2>\n<h3>\u4fdd\u7559\u5b57<\/h3>\n<table>\n<thead>\n<tr>\n<th align=\"left\"><\/th>\n<th align=\"left\"><\/th>\n<th align=\"left\"><\/th>\n<th align=\"left\"><\/th>\n<th align=\"left\"><\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td align=\"left\">const<\/td>\n<td align=\"left\">null<\/td>\n<td align=\"left\">class<\/td>\n<td align=\"left\">new<\/td>\n<td align=\"left\">this<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">as<\/td>\n<td align=\"left\">default<\/td>\n<td align=\"left\">final<\/td>\n<td align=\"left\">continue<\/td>\n<td align=\"left\">throw<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">assert<\/td>\n<td align=\"left\">deferred<\/td>\n<td align=\"left\">finally<\/td>\n<td align=\"left\">operator<\/td>\n<td align=\"left\">true<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">async<\/td>\n<td align=\"left\">do<\/td>\n<td align=\"left\">for<\/td>\n<td align=\"left\">part<\/td>\n<td align=\"left\">try<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">async*<\/td>\n<td align=\"left\">dynamic<\/td>\n<td align=\"left\">get<\/td>\n<td align=\"left\">rethrow<\/td>\n<td align=\"left\">typedef<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">await<\/td>\n<td align=\"left\">else<\/td>\n<td align=\"left\">if<\/td>\n<td align=\"left\">return<\/td>\n<td align=\"left\">var<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">break<\/td>\n<td align=\"left\">enum<\/td>\n<td align=\"left\">implements<\/td>\n<td align=\"left\">set<\/td>\n<td align=\"left\">void<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">case<\/td>\n<td align=\"left\">export<\/td>\n<td align=\"left\">import<\/td>\n<td align=\"left\">static<\/td>\n<td align=\"left\">while<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">catch<\/td>\n<td align=\"left\">external<\/td>\n<td align=\"left\">in<\/td>\n<td align=\"left\">super<\/td>\n<td align=\"left\">with<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">false<\/td>\n<td align=\"left\">extends<\/td>\n<td align=\"left\">is<\/td>\n<td align=\"left\">switch<\/td>\n<td align=\"left\">yield<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"left\">abstract<\/td>\n<td align=\"left\">factory<\/td>\n<td align=\"left\">library<\/td>\n<td align=\"left\">sync*<\/td>\n<td align=\"left\">yield*<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u7a0b\u5e8f\u5165\u53e3<\/h3>\n<pre><code class=\"language-dart line-numbers\">void main(){\n    var number = 6.76;\/\/\u52a8\u6001\u7c7b\u578b\u58f0\u660e \u9690\u5f0f\u8f6c\u6362\u7c7b\u578b\n    trace(number);\n}\ntrace(num Number){\/\/\u6307\u5b9a\u7c7b\u578b\n    print('The number is $Number');\/\/\u6a21\u7248\u5b57\u7b26\u4e32\n}\n<\/code><\/pre>\n<h3>\u8bed\u6cd5\u6838\u5fc3<\/h3>\n<pre><code class=\"language-dart line-numbers\">var lalala;\nvar wahaha = 1;\nprint(lalala);\/\/null\nprint(wahaha);\/\/1\n\n\/\/\u6570\u503c\u7c7b\u578b\nint a = 2;\/\/\u6574\u578b\ndouble aa = 3.1415;\/\/\u6d6e\u70b9\u578b\nprint(a);\/\/\u6307\u5b9a\u7c7b\u578b\nb ??= a;\n\n\/\/\u6839\u636e\u8f6c\u6362\u6807\u51c6\ndouble aaa = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1;\nprint(aaa);\/\/0.9999999999999999\nprint(aaa.toStringAsFixed(0));\/\/1\nprint(aaa.toStringAsFixed(2));\/\/1.00\n\n\/\/\u8fd0\u7b97\u7b26\uff1a+\u3001-\u3001*\u3001\/\u3001~\/\u3001%\n\/\/\u5c5e\u6027\uff1aisNaN\u3001isEven\u3001isOdd\n\/\/\u65b9\u6cd5\uff1aabs()\u3001round()\u3001floor()\u3001ceil()\u3001toInt()\u3001toDouble()\u7b49\nint num7 = 3;\ndouble num10 = 10.1;\nprint(num7 \/ num10);\/\/0.297029702970297\nprint(num7 ~\/ num10);\/\/0\n\n\n\/\/\u5b57\u7b26\u4e32\nString str1 = \"'\u5566\u5566\u5566'\";\/\/'\u5566\u5566\u5566'\nString str2 = '\"\u5a03\u54c8\u54c8\"';\/\/\"\u5a03\u54c8\u54c8\"\n\n\n\/\/\u5e38\u91cf\nconst b = \"b\";\u58f0\u660e\u65f6\u8d4b\u503c\u4e00\u6b21\nfinal c = \"c\";\/\/\u8fd0\u884c\u65f6\u8d4b\u503c\u4e00\u6b21\nconst String d = \"\u8bcd\u6cd5\u5e38\u91cf\";\nfinal String e;\ne = \"\u8fd0\u884c\u65f6\u5e38\u91cf\";\nprint(b);\/\/b\nprint(c);\/\/c\nprint(d);\/\/\u8bcd\u6cd5\u5e38\u91cf\nprint(e);\/\/\u8fd0\u884c\u65f6\u5e38\u91cf\n\n\n\/\/bool\u5e03\u5c14\nbool b = true;\nif(b){\n    print(\"true\");\n}else{\n    print(\"false\");\n}\nprint(b ? \"\u4e09\u5143true\" : \"\u4e09\u5143false\");\n\n\n\/\/\u6570\u7ec4List\nList list = [0,1,2];\n\/\/\u53efnew\nList list1 = new List();\nList list2 = const[0,1,2];\n\/\/\ufffd\u6307\u5b9a\u5355\u7c7b\u578b\nList list3 = new List&lt;String&gt;();\nList list4 = new List(5);\nList list5 = new List.from([0,1,2,3]);\nList list6 = new List()..length = 10;\n\/\/\u56fa\u957f\nList list7 = new List.unmodifiable([0,1,2]);\n\/\/generate\u751f\u6210\u5668\nList list8 = new List&lt;int&gt;.generate(5, (int i){\n    return i + i;\n});\n\/\/List\u65b9\u6cd5\uff1aadd()\u3001insert()\u3001remove()\u3001removeAt()\u3001indexOf()\u3001elementAt()\u7b49\n\n\n\/\/Map\nMap mapEnt = Map.identity();\nprint(mapEnt); \nMap map = {'one':'Hello', 'two':'Indeex', 'three':'lalala'};\nprint(map);  \nMap map1 = new Map();\nmap1[\"one\"] = 'Hello';\nmap1[\"two\"] = 'Indeex';\nmap1[\"three\"] = 'lalala';\nprint(map1);\/\/{one: Hello, two: Indeex, three: lalala}\nmap1.forEach((key,value) {\n    print(\"key:${key}, value:${value}\");\n});\n\/\/\u5f15\u7528\nMap map2 = Map.of(map1);\nprint(map2);\nMap map3 = Map.fromEntries(map1.entries);\nprint(map3);\n\/\/\u526f\u672c\nMap map4 = Map.unmodifiable(map3);\nprint(map4);\nList&lt;String&gt; keys = ['one','two'];\nList&lt;String&gt; values = ['Android','IOS'];\nMap map5 = Map.fromIterables(keys, values);\nprint(map5);\nvar mapType = new Map&lt;int,String&gt;();\n\n\n\/\/Runes\u5b57\u7b26\u7b26\u53f7\nvar clapp = '\\u{1f44f}';\nprint(clapp);\/\/\ud83d\udc4f\nprint(clapp.codeUnits);\/\/[55357, 56399]\nprint(clapp.runes.toList());\/\/128079]\nRunes input = new Runes('\\u2665  \\u{1f605}  \\u{1f60e}  \\u{1f47b}  \\u{1f596}  \\u{1f44d}');\nprint(new String.fromCharCodes(input));\/\/\u2665  \ud83d\ude05  \ud83d\ude0e  \ud83d\udc7b  \ud83d\udd96  \ud83d\udc4d\n\n\n\/\/Symbols\nvar name = 'indeex';\nSymbol symbol = #name;\nprint(symbol);\/\/Symbol(\"name\");\nprint(#name);\/\/Symbol(\"name\");\n\n\n\/\/function\uff1a\u8bcd\u6cd5\u4f5c\u7528\u57df\/\u9759\u6001\u4f5c\u7528\u57df \u95ed\u5305\u540c \u53ef\u9009\u8fd4\u56de\u503c\nbool isnull(int num) {\n    return list[num] != null;\n}\n\nbool isnull(int num) =&gt; list[num] != null;\n\nString say(String from, String msg = \"Hello\", [String device]) {\n    var result = '$from says $msg';\n    if (device != null) {\n        result = '$result with a $device';\n    }\n    return result;\n}\n\nvoid dosome({List&lt;int&gt; list = const [1, 2, 3], Map&lt;String, String&gt; gifts = const {'first': 'paper', 'second': 'cotton', 'third': 'leather'}}) {\n    print('list:  $list');\n    print('gifts: $gifts');\n}\n\/\/\u7ea7\u8054\nquerySelector(\"#element\")\n..text = \"Waooooo!\"\n..onClick.listen(reverseText);\n\/\/\u533f\u540d\u51fd\u6570\nvar list = ['\ud83c\udf4e', '\ud83c\udf4a', '\ud83c\udf4c', '\ud83c\udf49'];\nlist.forEach((i) =&gt; print(list.indexOf(i).toString() + ': ' + i));\n\n\n\/\/is as\na is b\/\/true false\nc as d\n\n\/\/do while while do\nwhile (true) {\n    \/\/dosomething\n    if(true) continue;\n    if(false) break;\n}\ndo {\n    \/\/dosomething\n} while (true);\n\n\n\/\/swhich\nswitch (var) {\n    case 'value':\n        \/\/dosomething\n        break;\n    case 'value1':\n        \/\/dosomething\n    default:\n        \/\/doothersomething\n}\n\n\/\/Error \u5f02\u5e38\nthrow '\u51fa\u9519\u5566\uff01';\ntry {\n    \/\/dosomething\n} catch(e) {\n    print('\u5f02\u5e38: $e');\n} finally {\/\/\u53ef\u4ee5\u6ca1\u6709\u6b21\u6d41\u7a0b\n    \/\/doothersomething\n}\n\n\n\/\/class\nclass Person {\n    String name;\n    int age;\n    Point(this.name, this.age);\n}\n\/\/\u5de5\u5382\u6784\u9020\nclass Logger {\n    final String name;\n    bool mute = false;\n    static final Map&lt;String, Logger&gt; _cache = &lt;String, Logger&gt;{};\n    factory Logger(String name) {\n        if (_cache.containsKey(name)) {\n            return _cache[name];\n        } else {\n            final logger = new Logger._internal(name);\n            _cache[name] = logger;\n            return logger;\n        }\n    }\n    Logger._internal(this.name);\n    void log(String msg) {\n        if (!mute) {\n            print(msg);\n        }\n    }\n}\nvar logger = new Logger('UI');\nlogger.log('\u70b9\u51fb\u6309\u94ae');\n\n\/\/getter setter\nclass Rectangle {\n    num left;\n    num top;\n    num width;\n    num height;\n    Rectangle(this.left, this.top, this.width, this.height);\n    num get right =&gt; left + width;\n    set right(num value) =&gt; left = value - width;\n    num get bottom =&gt; top + height;\n    set bottom(num value) =&gt; top = value - height;\n}\n\n\/\/\u62bd\u8c61\u7c7b\nclass chouxiang extends AbstractContainer {\n    void updateChildren() {\n    }\n    void doSomething();\/\/\u4f1a\u6709\u8b66\u544a\n}\n\n\/\/\u63a5\u53e3 \u6ca1\u6709\u76f4\u63a5\u63a5\u53e3\u5173\u952e\u5b57\nclass Person {\n    final _name;\n    Person(this._name);\n    String greet(who) =&gt; 'Hello, $who. I am $_name.';\n}\n\/\/\u63a5\u53e3\u5b9e\u73b0\nclass Imposter implements Person {\n    final _name = \"\";\n    String greet(who) =&gt; 'Hi $who. Do you know who I am?';\n}\ngreetBob(Person person) =&gt; person.greet('hungking');\nmain() {\n    print(greetBob(new Person('indeex')));\n    print(greetBob(new Imposter()));\n}\n\/\/\u591a\u4e2a\u63a5\u53e3\nclass Point implements Comparable, Location {\n    \/\/dosomething\n}\n\n\/\/\u6269\u5c55\u7c7b\nclass Television {\n    void turnOn() {\n        _illuminateDisplay();\n        _activateIrSensor();\n    }\n    \/\/...\n}\nclass SmartTelevision extends Television {\n    void turnOn() {\n        super.turnOn();\n        _bootNetworkInterface();\n        _initializeMemory();\n        _upgradeApps();\n    }\n    \/\/...\n}\n\n\/\/override\nclass A {\n@override\nvoid noSuchMethod(Invocation mirror) {\n    \/\/  \u3002\u3002\u3002\n    }\n}\n\n\/\/\u679a\u4e3e\u7c7b\u578b\nenum Color {\n    red,\n    green,\n    blue\n}\n\n\/\/\u9759\u6001\u7c7b\nclass Point {\n    static const red = const Color('red');\n    num x;\n    num y;\n    Point(this.x, this.y);\n    static num distanceBetween(Point a, Point b) {\n        var dx = a.x - b.x;\n        var dy = a.y - b.y;\n        return sqrt(dx * dx + dy * dy);\n    }\n}\nmain() {\n    var a = new Point(2, 2);\n    var b = new Point(4, 4);\n    var distance = Point.distanceBetween(a, b);\n    assert(distance &lt; 2.9 &amp;&amp; distance &gt; 2.8);\n}\n\n\/\/\u8303\u578b\nT first&lt;T&gt;(List&lt;T&gt; ts) {\n    T tmp ?= ts[0];\n    return tmp;\n}\n\n\n\/\/import\n\/\/\u5185\u7f6e\u5e93\nimport 'dart:html';\n\nimport 'package:lib2\/lib2.dart' as lib2;\nnew lib2.Dosomething();\n\n\/\/\u5bfc\u5165\u6307\u5b9a\nimport 'package:lib1\/lib1.dart' show foo;\n\/\/\u5bfc\u5165\u9664\u6307\u5b9a\nimport 'package:lib2\/lib2.dart' hide foo;\n\/\/\u5ef6\u8fdf\u5bfc\u5165 deferred async await\nimport 'package:deferred\/hello.dart' deferred as hello;\ngreet() async {\n    await hello.loadLibrary();\n    hello.printGreeting();\n}\n\n\/\/\u5143\u6570\u636eMetadata @deprecated\u3001@override\uff0c@proxy\nclass Television {\n    @deprecated\n    void activate() {\n        turnOn();\n    }\n    void turnOn() {\n        print('on!');\n    }\n}\n\nimport 'todo.dart';\n@todo('seth', 'make this do something')\nvoid doSomething() {\n    print('dosomething');\n}\n\n<\/code><\/pre>\n<p>code enjoy! \ud83d\udc3e\ud83d\udc3e\ud83d\udc3e\ud83d\udc3e\ud83d\udc3e\ud83d\udc3e\ud83d\udc3e\ud83d\udc3e\ud83d\udc0c\ud83d\udc1d<\/p>\n<p>\u4f5c\u8005\uff1aindeex<\/p>\n<p>\u94fe\u63a5\uff1a<a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/indeex.club\/\">https:\/\/indeex.club<\/a><\/p>\n<p>\u8457\u4f5c\u6743\u5f52\u4f5c\u8005\u6240\u6709\u3002\u5546\u4e1a\u8f6c\u8f7d\u8bf7\u8054\u7cfb\u4f5c\u8005\u83b7\u5f97\u6388\u6743\uff0c\u975e\u5546\u4e1a\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u3002<\/p>\n<hr \/>\n","protected":false},"excerpt":{"rendered":"<p>\u5f88\u591a\u5e74\u524d\u7b80\u5355\u603b\u7ed3\u4e86Dart\u7684\u4e00\u4e9b\u7279\u70b9\uff0c\u90fd\u662f\u57fa\u4e8e\u5f53\u65f6\u7684\u4e00\u4e9b\u4f7f\u7528\u60c5\u51b5\uff0c\u4ece\u65b0\u68b3\u7406\u4e0b\u3002 Dart\u7279\u70b9 \u5728Da<a href=\"https:\/\/blog.indeex.club\/index.php\/2021\/11\/05\/dart%e8%af%ad%e6%b3%95%e9%87%8d%e6%96%b0%e6%95%b4%e7%90%86\/\" class=\"read-more\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12],"tags":[13],"_links":{"self":[{"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/posts\/246"}],"collection":[{"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":1,"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":247,"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/posts\/246\/revisions\/247"}],"wp:attachment":[{"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.indeex.club\/index.php\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}