{"id":1345,"date":"2018-06-07T17:20:51","date_gmt":"2018-06-07T09:20:51","guid":{"rendered":"https:\/\/damogame.cn:15443\/wordpress\/?p=1345"},"modified":"2018-06-07T17:20:51","modified_gmt":"2018-06-07T09:20:51","slug":"lua-%e8%84%9a%e6%9c%ac%e9%87%8d%e5%90%af-%e6%9c%ba%e5%88%b6","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/1345","title":{"rendered":"Lua \u811a\u672c\u91cd\u542f \u673a\u5236"},"content":{"rendered":"<p>\u4e0d\u7ba1\u662f \u73b0\u5728\u5f00\u53d1\u4e2d\u7684\u6e38\u620f\u670d\u52a1\u7aef, \u8fd8\u662f\u8fd1\u671flove2D \u5f00\u53d1\u7684\u524d\u7aef, \u90fd\u4f7f\u7528 Lua \u505a\u811a\u672c\u5f15\u64ce, \u9700\u8981\u6d89\u53ca\u5230 \u811a\u672c\u7684\u4fee\u6539\u548c\u91cd\u542f. \u7b2c\u4e00\u79cd\u65b9\u6cd5\u662f \u5199\u4e2a\u5c01\u88c5\u51fd\u6570, \u91cc\u9762\u8fdb\u884c\u5bf9\u6240\u6709 lua \u811a\u672c\u6587\u4ef6\u7684 require() \u64cd\u4f5c, \u8fd9\u5c31\u8981\u6c42 :<\/p>\n<p>1.\u5bf9\u6bcf\u4e2a\u652f\u6301\u91cd\u65b0\u52a0\u8f7d\u7684\u6587\u4ef6\u8fdb\u884c<\/p>\n<div class=\"cnblogs_code\">\n<pre>package.loaded[ filename]  = nil\r\nrequire( filename)<\/pre>\n<\/div>\n<p>2.\u6587\u4ef6\u52a0\u8f7d\u8981\u4fdd\u6301\u4e00\u5b9a\u7684\u987a\u5e8f, \u4ee5\u514d\u9020\u6210\u8d44\u6e90\u7684\u9519\u4e71.<\/p>\n<p>\u5c31\u5f53\u524d\u4f7f\u7528 love2D \u524d\u7aef\u6765\u770b, \u5176\u5b9e\u53ea\u6709\u4e00\u4e2a &#8220;\u542f\u52a8&#8221;\u6587\u4ef6: main.lua, \u5e76\u5728\u5176\u5185\u8fdb\u884c \u5404\u4e2a\u5b50\u529f\u80fd\u811a\u672c\u7684 require \u52a0\u8f7d.\u5982\u679c\u5728 \u91cd\u65b0\u52a0\u8f7d\u65f6, \u81ea\u52a8\u6309\u7167 main.lua \u63d0\u4f9b\u7684<\/p>\n<p>require(&#8230;) \u987a\u5e8f\u8fdb\u884c\u81ea\u52a8\u52a0\u8f7d\u5c31\u597d\u4e86, \u5e76\u4e14\u65e0\u9700\u50cf\u4e0a\u9762\u7684\u9488\u5bf9\u6bcf\u4e2a\u6587\u4ef6\u7f16\u5199:<\/p>\n<div class=\"cnblogs_code\">\n<pre>function reload_files()\r\n    require( f1)\r\n    require( f2)\r\n    ...\r\n\r\nend<\/pre>\n<\/div>\n<p>\u6574\u4f53\u76ee\u6807\u6709\u51e0\u4e2a:<br \/>\n1.\u65e0\u9700\u9759\u6001\u7ef4\u62a4\u4e00\u4e2a\u91cd\u65b0\u52a0\u8f7d\u7684\u6587\u4ef6, \u6216\u51fd\u6570, \u8fdb\u884c\u7f16\u5199 \u5404\u4e2a\u811a\u672c\u6587\u4ef6\u7684 require() \u8fdb\u884c\u91cd\u65b0\u52a0\u8f7d;<\/p>\n<p>2.\u80fd\u591f\u6309\u7167\u5f53\u524d\u6587\u4ef6\u4e2d\u5404\u4e2a\u6587\u4ef6\u7684 \u987a\u5e8f\u8fdb\u884c\u52a0\u8f7d, \u5373\u5982\u679c<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>--main.lua\r\n\r\nrequire( \"config\")\r\nrequire( \"function\")\r\nrequire( \"globals\")\r\nrequire( \"gameplayer\")\r\nrequire( \"scene\") \r\n\r\nNeedReset = true\r\n...<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u8fd9\u79cd\u987a\u5e8f\u7f16\u5199main.lua( \u6216\u5176\u4ed6\u6587\u4ef6), \u90fd\u5c3d\u91cf\u4fdd\u6301 config &gt; function &gt; globals &gt; gameplayer &gt; scene \u7684\u987a\u5e8f\u8fdb\u884c\u91cd\u65b0\u52a0\u8f7d;<br \/>\n3.\u80fd\u591f\u907f\u514d &#8220;\u5df2\u88ab\u91cd\u65b0\u8bb0\u8f7d\u7684\u6587\u4ef6&#8221; \u518d\u6b21\u88ab\u91cd\u65b0\u52a0\u8f7d;<\/p>\n<p>4.\u80fd\u591f\u907f\u514d \u5d4c\u5957\u9012\u5f52\u52a0\u8f7d;<\/p>\n<p>5.\u80fd\u591f\u5bf9 \u5916\u90e8\u5e93\u8fdb\u884c\u8bc6\u522b, \u5373<\/p>\n<div class=\"cnblogs_code\">\n<pre>require( \"bit\")<\/pre>\n<\/div>\n<p>\u662f\u5728\u52a0\u8f7d &#8220;\u4f4d\u64cd\u4f5c&#8221;\u7684 \u5e93 bit.dll , \u800c\u4e0d\u662f bit.lua, \u4e0d\u5e94\u8be5\u8fdb\u884c \u5d4c\u5957\u52a0\u8f7d;<br \/>\n6.\u80fd\u591f\u8bc6\u522b\u67d0\u4e9b &#8220;\u7981\u6b62\u91cd\u65b0\u52a0\u8f7d&#8221;\u7684\u6587\u4ef6, \u4f8b\u5982:<\/p>\n<div class=\"cnblogs_code\">\n<pre>-- global.lua\r\n\r\nrequire( \"skill_cfg\")\r\nrequire( \"effect_cfg\")\r\n\r\ng_object_list = {}<\/pre>\n<\/div>\n<p>global.lua \u6587\u4ef6\u672c\u8eab\u4e0d\u80fd\u88ab \u591a\u6b21require(), \u4e0d\u7136 g_object_list \u5168\u5c40\u53d8\u91cf\u4f1a\u88ab\u91cd\u7f6e, \u4f46\u53c8\u80fd\u591f\u4e0d\u4f1a\u5f71\u54cd skill_cfg \u548c effect_cfg \u7684\u91cd\u65b0\u52a0\u8f7d;<\/p>\n<p>7.\u5e94\u8be5\u8981\u652f\u6301 &#8220;\u540e\u5e8f&#8221; \u65b9\u5f0f\u8fdb\u884c\u52a0\u8f7d, \u8bb0\u8f7d\u52a0\u8f7d main.lua \u8fc7\u7a0b\u4e2d, \u5e94\u8be5\u73b0\u5728\u9012\u5f52\u52a0\u8f7d\u5b8c \u5b50\u811a\u672c\u6587\u4ef6:<\/p>\n<div class=\"cnblogs_code\">\n<pre>require( \"config\")\r\nrequire( \"function\")\r\nrequire( \"globals\")\r\nrequire( \"gameplayer\")\r\nrequire( \"scene\")<\/pre>\n<\/div>\n<p>\u7136\u540e\u5728\u8fdb\u884c \u52a0\u8f7d main.lua \u7684\u540e\u5e8f\u5185\u5bb9:<\/p>\n<div class=\"cnblogs_code\">\n<pre>NeedReset = true\r\n...<\/pre>\n<\/div>\n<p>8.\u80fd\u591f \u8bc6\u522b \u6587\u4ef6\u4e2d\u7684 require(&#8230;) \u884c.<\/p>\n<p>&nbsp;<\/p>\n<p>\u5927\u6982\u8fd9\u00a08 \u70b9\u76ee\u6807 \u548c\u8981\u6c42, \u4f46\u5bf9\u4e8e\u7b2c7\u70b9, \u6709\u4e2a\u95ee\u9898:<\/p>\n<p>\u5047\u8bbe \u91cd\u65b0\u52a0\u8f7d \u7684 \u9012\u5f52\u51fd\u6570\u4e3a<\/p>\n<div class=\"cnblogs_code\">\n<pre>function recursive_reload( filename)\r\n\r\n \u3000\u3000package.loaded[ filename] = nil  \r\n\u3000\u3000 require( filename )\r\n\r\nend<\/pre>\n<\/div>\n<p>\u5e76\u4e14main.lua \u7684\u5185\u5bb9\u7b80\u5355\u6709\u5982:<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>--main.lua\r\n\r\nrequire( \"config\") \r\nrequire( \"function\") \r\nrequire( \"globals\") \r\nrequire( \"gameplayer\") \r\nrequire( \"scene\")\r\n\r\nNeedReset = true<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p>\u5728 \u89e6\u53d1\u91cd\u65b0\u52a0\u8f7d\u7684 \u5165\u53e3\u4e2d:<\/p>\n<div class=\"cnblogs_code\">\n<pre>function main_reloader()  \r\n    recursive_reload( \"mian\" ) \r\nend<\/pre>\n<\/div>\n<p>\u8c03\u7528 main_reloader() \u8fdb\u884c\u91cd\u65b0\u52a0\u8f7d\u7684\u8fc7\u7a0b \u5c55\u5f00\u5c06\u4f1a\u5982:<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>--\u5148\u9012\u5f52\u5730\u4f7f\u7528 recursive_reload() \u91cd\u65b0\u52a0\u8f7d\u5b50\u6587\u4ef6 \r\n\r\npackage.loaded[ 'config'] = nil \r\nrequire( 'config')\r\n\r\npackage.loaded[ 'function'] = nil \r\nrequire( 'function')\r\n\r\npackage.loaded[ 'globals'] = nil \r\nrequire( 'globals')\r\n\r\npackage.loaded[ 'gameplayer'] = nil \r\nrequire( 'gameplayer')\r\n\r\npackage.loaded[ 'scene'] = nil \r\nrequire( 'scene')\r\n\r\n--\u518d\u6700\u540e\u52a0\u8f7d main.lua \r\npackage.loaded[ 'main'] = nil \r\nrequire( 'main') --\u4f46\u5c31\u5728\u8fd9\u4e2a\u64cd\u4f5c\u4e2d, \u8fd8\u4f1a\u6d89\u53ca\u5230\u5d4c\u5957\u7684:<\/pre>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>require( \"config\")  \r\nrequire( \"function\")  \r\nrequire( \"globals\")  \r\nrequire( \"gameplayer\")  \r\nrequire( \"scene\")  \r\n\r\nNeedReset = true<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<pre><\/pre>\n<p>&nbsp;<\/p>\n<pre><\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u8fd9 5 \u4e2a \u6587\u4ef6\u4e0d\u5c31\u4f1a\u88ab \u591a\u6b21 require() \u4e86\u5417? \u867d\u7136 \u5b8c\u6574\u7684 recursive_reload() \u80fd\u591f\u9632\u6b62 &#8220;\u663e\u793a\u7684&#8221; \u91cd\u590drequire(),\u00a0 \u4f46\u662f\u4e0d\u80fd\u7981\u6b62 &#8220;\u9690\u5f0f\u7684&#8221; require() \u5176\u5b9e, \u5c31\u7b97\u7b2c\u4e8c\u6b21\u7684 &#8220;\u9690\u5f0f&#8221; requre() \u786e\u5b9e\u4f1a\u8c03\u7528, \u4f46\u4e0d\u4f1a\u91cd\u65b0\u52a0\u8f7d \u5b9e\u9645\u7684\u7269\u7406\u6587\u4ef6, \u89c1\u4e8e lua \u5f00\u53d1\u624b\u518c\u4e0a:<\/p>\n<div class=\"cnblogs_code\">\n<pre>require (modname) Loads the given module. \r\n\r\nThe function starts by looking into the package.loaded table to determine whether modname is already loaded. \r\nIf it is, then require returns the value stored at package.loaded[modname]. \r\nOtherwise, it tries to find a loader for the module.<\/pre>\n<\/div>\n<p>\u5373\u662f\u8bf4, \u53ea\u8981\u66fe\u7ecf\u52a0\u8f7d\u4e86 \u6587\u4ef6, \u5e76\u5728 package.loaded \u5185\u6709\u8bb0\u5f55, \u540e\u5e8f\u7684 requre() \u5c06\u4f1a\u76f4\u63a5\u8fd4\u56de.<\/p>\n<p>\u8fd9 5 \u4e2a \u6587\u4ef6\u4e0d\u5c31\u4f1a\u88ab \u591a\u6b21 require() \u4e86\u5417? \u867d\u7136 \u5b8c\u6574\u7684 recursive_reload() \u80fd\u591f\u9632\u6b62 &#8220;\u663e\u793a\u7684&#8221; \u91cd\u590drequire(),\u00a0 \u4f46\u662f\u4e0d\u80fd\u7981\u6b62 &#8220;\u9690\u5f0f\u7684&#8221; require() \u5176\u5b9e, \u5c31\u7b97\u7b2c\u4e8c\u6b21\u7684 &#8220;\u9690\u5f0f&#8221; requre() \u786e\u5b9e\u4f1a\u8c03\u7528, \u4f46\u4e0d\u4f1a\u91cd\u65b0\u52a0\u8f7d \u5b9e\u9645\u7684\u7269\u7406\u6587\u4ef6, \u89c1\u4e8e lua \u5f00\u53d1\u624b\u518c\u4e0a:<\/p>\n<p>require (modname) Loads the given module. The function starts by looking into the package.loaded table to determine whether modname is already loaded. If it is, then require returns the value stored at package.loaded[modname]. Otherwise, it tries to find a loader for the module.<\/p>\n<p>\u5373\u662f\u8bf4, \u53ea\u8981\u66fe\u7ecf\u52a0\u8f7d\u4e86 \u6587\u4ef6, \u5e76\u5728 package.loaded \u5185\u6709\u8bb0\u5f55, \u540e\u5e8f\u7684 requre() \u5c06\u4f1a\u76f4\u63a5\u8fd4\u56de.<\/p>\n<p>&nbsp;<\/p>\n<p>\u5177\u4f53\u8fd0\u884c\u6548\u679c:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/images0.cnblogs.com\/blog\/443816\/201309\/04211007-76ce3e1cb89344549028c4a4730649cd.jpg\" alt=\"\" \/><\/p>\n<p>\u53ea\u662f\u5177\u4f53\u7684\u5b9e\u73b0\u4ee3\u7801:<\/p>\n<p>&nbsp;<\/p>\n<div class=\"cnblogs_code\">\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<pre>-- \u5916\u90e8\u5e93 \u767b\u8bb0\r\nlocal package_list = {\r\n    bit = true \r\n}\r\n\r\n-- \u5168\u5c40\u6027\u8d28\u7c7b\/\u6216\u7981\u6b62\u91cd\u65b0\u52a0\u8f7d\u7684\u6587\u4ef6\u8bb0\u5f55\r\nlocal ignored_file_list = {\r\n    global = true ,\r\n}\r\n\r\n--\u5df2\u91cd\u65b0\u52a0\u8f7d\u7684\u6587\u4ef6\u8bb0\u5f55\r\nlocal loaded_file_list = {}\r\n\r\n--\u89c6\u56fe\u6392\u7248\u63a7\u5236\r\nfunction leading_tag( indent )\r\n    -- body\r\n    if indent &lt; 1 then\r\n        return ''\r\n    else\r\n        return string.rep( '    |',  indent - 1  ) .. '    '\r\n    end\r\nend\r\n\r\n--\u5173\u952e\u9012\u5f52\u91cd\u65b0\u52a0\u8f7d\u51fd\u6570\r\n--filename \u6587\u4ef6\u540d\r\n--indent   \u9012\u5f52\u6df1\u5ea6, \u7528\u4e8e\u63a7\u5236\u6392\u7248\u663e\u793a\r\nfunction recursive_reload( filename, indent )\r\n    -- body\r\n    if package_list[ filename] then \r\n        --\u5bf9\u4e8e \u5916\u90e8\u5e93, \u53ea\u8fdb\u884c\u91cd\u65b0\u52a0\u8f7d, \u4e0d\u505a\u9012\u5f52\u5b50\u6587\u4ef6\r\n        --\u5378\u8f7d\u65e7\u6587\u4ef6\r\n        package.loaded[ filename] = nil\r\n\r\n        --\u88c5\u8f7d\u4fe1\u6587\u4ef6\r\n        require( filename )\r\n\r\n        --\u6807\u8bb0\"\u5df2\u88ab\u91cd\u65b0\u52a0\u8f7d\"\r\n        loaded_file_list[ filename] = true\r\n\r\n        print( leading_tag(indent) .. filename .. \"... done\" )\r\n        return true\r\n    end\r\n\r\n    --\u666e\u901a\u6587\u4ef6\r\n    --\u8fdb\u884c \"\u5df2\u88ab\u91cd\u65b0\u52a0\u8f7d\" \u68c0\u6d4b\r\n    if loaded_file_list[ filename] then \r\n        print( leading_tag(indent) .. filename .. \"...already been reloaded IGNORED\" )\r\n        return true\r\n    end\r\n\r\n    --\u8bfb\u53d6\u5f53\u524d\u6587\u4ef6\u5185\u5bb9, \u4ee5\u8fdb\u884c\u5b50\u6587\u4ef6\u9012\u5f52\u91cd\u65b0\u52a0\u8f7d\r\n    local file, err = io.open( filename..\".lua\" )\r\n    if file == nil then \r\n        print( string.format( \"failed to reaload file(%s), with error:%s\", filename, err or \"unknown\" ) )\r\n        return false\r\n    end\r\n\r\n    print( leading_tag(indent) .. filename .. \"...\" )\r\n\r\n    --\u8bfb\u53d6\u6bcf\u4e00\u884c\r\n    for line in file:lines() do \r\n        \r\n        --\u8bc6\u522b require(...)\u884c, \u6b63\u5219\u8868\u8fbe? \u6a21\u5f0f\u5339\u914d? \u5e76\u62fe\u53d6\u6587\u4ef6\u540d \u5230 subFileName\r\n        line = string.gsub( line, '%s', '' )\r\n        local subFileName = nil \r\n        local ret = string.gsub( line, '^require%(\"(.+)\"%)', function ( s ) subFileName = s end )\r\n\r\n        if subFileName then\r\n            --\u8fdb\u884c\u9012\u5f52 \r\n            local success = recursive_reload( subFileName, indent + 1 )\r\n            if not success then \r\n                print( string.format( \"failed to reload sub file of (%s)\", filename ) )\r\n                return false \r\n            end\r\n\r\n        end\r\n        \r\n    end    \r\n\r\n\r\n    -- \"\u540e\u5e8f\" \u5904\u7406\u5f53\u524d\u6587\u4ef6...\r\n\r\n    \r\n    if ignored_file_list[ filename] then\r\n        --\u5ffd\u7565 \"\u7981\u6b62\u88ab\u91cd\u65b0\u52a0\u8f7d\"\u7684\u6587\u4ef6\r\n        print( leading_tag(indent) .. filename .. \"... IGNORED\" )\r\n        return true\r\n    else\r\n\r\n        --\u5378\u8f7d\u65e7\u6587\u4ef6\r\n        package.loaded[ filename] = nil\r\n\r\n        --\u88c5\u8f7d\u65b0\u6587\u4ef6\r\n        require( filename )\r\n\r\n        --\u8bbe\u7f6e\"\u5df2\u88ab\u91cd\u65b0\u52a0\u8f7d\" \u6807\u8bb0\r\n        loaded_file_list[ filename] = true\r\n        print( leading_tag(indent) .. filename .. \"... done\" )\r\n        return true\r\n    end\r\nend\r\n\r\n--\u4e3b\u5165\u53e3\u51fd\u6570\r\nfunction reload_script_files()\r\n    \r\n    print( \"[reload_script_files...]\")\r\n\r\n    loaded_file_list = {}\r\n\r\n    --\u672c\u9879\u76ee\u662f\u4ee5 main.lua \u4e3a\u4e3b\u6587\u4ef6\r\n    recursive_reload( \"main\", 0 )\r\n    \r\n    print( \"[reload_script_files...done]\")\r\n\r\n    return \"reload ok\"\r\nend<\/pre>\n<div class=\"cnblogs_code_toolbar\"><span class=\"cnblogs_code_copy\"><a title=\"\u590d\u5236\u4ee3\u7801\"><img decoding=\"async\" src=\"https:\/\/common.cnblogs.com\/images\/copycode.gif\" alt=\"\u590d\u5236\u4ee3\u7801\" \/><\/a><\/span><\/div>\n<\/div>\n<p>\u5907\u6ce8: \u8be5\u673a\u5236\u53ea\u652f\u6301\u7b80\u5355\u6587\u4ef6\u76ee\u5f55<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0d\u7ba1\u662f \u73b0\u5728\u5f00\u53d1\u4e2d\u7684\u6e38\u620f\u670d\u52a1\u7aef, \u8fd8\u662f\u8fd1<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[118],"class_list":["post-1345","post","type-post","status-publish","format-standard","hentry","tag-02-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/1345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=1345"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/1345\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=1345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=1345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=1345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}