{"id":510,"date":"2022-02-19T10:24:40","date_gmt":"2022-02-19T02:24:40","guid":{"rendered":"https:\/\/www.ccagml.com\/?p=510"},"modified":"2022-07-06T10:25:10","modified_gmt":"2022-07-06T02:25:10","slug":"lua%e4%b8%ad%e7%9a%84statement%e7%b1%bb%e5%88%abfunction","status":"publish","type":"post","link":"https:\/\/www.ccagml.com\/?p=510","title":{"rendered":"lua\u4e2d\u7684statement\u7c7b\u522bfunction"},"content":{"rendered":"<ul>\n<li>## 2.1 statement\u4e2d\u7684funcstat\u7c7b\u522b<\/li>\n<\/ul>\n<ol>\n<li>function \u8bed\u53e5\u7684\u89e3\u6790\n<ul>\n<li>function\u7684\u6784\u6210\u4e00\u822c\u7531\u4ee5\u4e0b\u4f8b\u5b50\u6784\u6210<\/li>\n<\/ul>\n<pre><code class=\"line-numbers\">    function aaa(arg, ...)\n\n    end\n<\/code><\/pre>\n<\/li>\n<li>funcstat\u89e3\u6790\n<pre><code class=\"line-numbers\">static void funcstat(LexState *ls, int line)\n{\n    int needself;\n    expdesc v, b;\n    gafqX_next(ls); \n    needself = funcname(ls, &amp;v);    \/\/ \u89e3\u6790\u51fd\u6570\u540d needself \u662f\u4e0d\u662f\u6709 : \u7684\u51fd\u6570\u8c03\u7528\n    body(ls, &amp;b, needself, line);\n    gafqK_storevar(ls-&gt;fs, &amp;v, &amp;b);\n    gafqK_fixline(ls-&gt;fs, line);\n}\n<\/code><\/pre>\n<\/li>\n<li>\u89e3\u6790body<\/li>\n<\/ol>\n<pre><code class=\"line-numbers\">    \/\/ \u83b7\u53d6\u63a5\u4e0b\u53bb\u7684\u4e1c\u897f\n    static void body(LexState *ls, expdesc *e, int needself, int line)\n    {\n\n        checknext(ls, '(');\n        if (needself)\n        {\n            new_localvarliteral(ls, \"self\", 0);\n            adjustlocalvars(ls, 1);\n        }\n        parlist(ls);  \/\/ \u89e3\u6790\u53c2\u6570\u5217\u8868\n        checknext(ls, ')');\n\n        chunk(ls); \/\/ \u89e3\u6790\u51fd\u6570\u7684\u5185\u5bb9\n\n    }\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>## 2.1 statement\u4e2d\u7684funcstat\u7c7b\u522b function \u8bed\u53e5\u7684\u89e3\u6790 function\u7684\u6784\u6210<a href=\"https:\/\/www.ccagml.com\/?p=510\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">lua\u4e2d\u7684statement\u7c7b\u522bfunction<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[32],"tags":[],"_links":{"self":[{"href":"https:\/\/www.ccagml.com\/index.php?rest_route=\/wp\/v2\/posts\/510"}],"collection":[{"href":"https:\/\/www.ccagml.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ccagml.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ccagml.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ccagml.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=510"}],"version-history":[{"count":1,"href":"https:\/\/www.ccagml.com\/index.php?rest_route=\/wp\/v2\/posts\/510\/revisions"}],"predecessor-version":[{"id":511,"href":"https:\/\/www.ccagml.com\/index.php?rest_route=\/wp\/v2\/posts\/510\/revisions\/511"}],"wp:attachment":[{"href":"https:\/\/www.ccagml.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ccagml.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ccagml.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}