{"id":412,"date":"2025-03-30T17:24:47","date_gmt":"2025-03-30T09:24:47","guid":{"rendered":"http:\/\/blog.yfstudio.online\/?p=412"},"modified":"2025-03-30T18:35:26","modified_gmt":"2025-03-30T10:35:26","slug":"go-%e9%a1%b9%e7%9b%ae%e7%bb%93%e6%9e%84","status":"publish","type":"post","link":"http:\/\/blog.yfstudio.online\/?p=412","title":{"rendered":"Go \u9879\u76ee\u7ed3\u6784"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><p>&#26412;&#25991;&#26159;&#23545; Go &#39033;&#30446;&#32467;&#26500;&#30340;&#35814;&#32454;&#35299;&#26512;&#65292;&#28085;&#30422;&#26680;&#24515;&#27010;&#24565;&#12289;&#30446;&#24405;&#24067;&#23616;&#21450;&#26368;&#20339;&#23454;&#36341;&#12290;<\/p>\n<h2>&#26680;&#24515;&#27010;&#24565;<\/h2>\n<h3>Module&#65288;&#27169;&#22359;&#65289;<\/h3>\n<ul>\n<li><strong>&#23450;&#20041;<\/strong>&#65306;Go 1.11+ &#24341;&#20837;&#30340;&#20381;&#36182;&#31649;&#29702;&#21333;&#20803;&#65292;&#23545;&#24212;&#21253;&#21547; <code>go.mod<\/code> &#25991;&#20214;&#30340;&#30446;&#24405;&#65292;&#23450;&#20041;&#39033;&#30446;&#36335;&#24452;&#12289;Go &#29256;&#26412;&#21450;&#20381;&#36182;&#39033;&#12290;<\/li>\n<li><strong>&#32452;&#25104;<\/strong>&#65306;&#19968;&#20010; Module &#21487;&#21253;&#21547;&#22810;&#20010; Package&#65292;&#27599;&#20010; Package &#23545;&#24212;&#19968;&#20010;&#30446;&#24405;&#19979;&#30340; <code>.go<\/code> &#25991;&#20214;&#38598;&#21512;&#12290;Module &#25903;&#25345;&#29256;&#26412;&#21270;&#31649;&#29702;&#65292;&#36890;&#36807;&#35821;&#20041;&#21270;&#29256;&#26412;&#65288;SemVer&#65289;&#22768;&#26126;&#20381;&#36182;&#12290;<\/li>\n<\/ul>\n<h3>Package&#65288;&#21253;&#65289;<\/h3>\n<ul>\n<li><strong>&#31867;&#22411;<\/strong>&#65306;\n<ul>\n<li><strong>Library Package<\/strong>&#65306;&#20195;&#30721;&#24211;&#65292;&#36890;&#36807; <code>package &lt;name&gt;<\/code> &#22768;&#26126;&#65292;&#20379;&#20854;&#20182;&#27169;&#22359;&#24341;&#29992;&#65288;&#22914; <code>github.com\/user\/mymod\/pkg\/mypkg<\/code>&#65289;&#12290;<\/li>\n<li><strong>Executable Command<\/strong>&#65306;&#21487;&#25191;&#34892;&#31243;&#24207;&#65292;&#20837;&#21475;&#20026; <code>package main<\/code> &#30340; <code>main()<\/code> &#20989;&#25968;&#12290;<\/li>\n<\/ul>\n<\/li>\n<li><strong>&#35775;&#38382;&#25511;&#21046;<\/strong>&#65306;&#36890;&#36807;&#39318;&#23383;&#27597;&#22823;&#23567;&#20889;&#25511;&#21046;&#21487;&#35265;&#24615;&#65288;&#22823;&#20889;&#23548;&#20986;&#65292;&#23567;&#20889;&#31169;&#26377;&#65289;&#12290;<\/li>\n<\/ul>\n<h3>Internal &#30446;&#24405;<\/h3>\n<ul>\n<li><strong>&#20316;&#29992;<\/strong>&#65306;&#23384;&#25918;&#31169;&#26377;&#20195;&#30721;&#65292;&#31105;&#27490;&#34987;&#20854;&#20182; Module &#23548;&#20837;&#65288;Go &#32534;&#35793;&#22120;&#24378;&#21046;&#26657;&#39564;&#65289;&#65292;&#24120;&#29992;&#20110;&#23553;&#35013;&#20869;&#37096;&#23454;&#29616;&#32454;&#33410;&#12290;<\/li>\n<li><strong>&#23618;&#32423;<\/strong>&#65306;&#21487;&#22312;&#20219;&#24847;&#30446;&#24405;&#23618;&#32423;&#21019;&#24314; <code>internal<\/code>&#65292;&#20165;&#21516;&#32423;&#21450;&#23376;&#32423;&#30446;&#24405;&#21487;&#35775;&#38382;&#12290;<\/li>\n<\/ul>\n<h2>&#30446;&#24405;&#32467;&#26500;<\/h2>\n<h3>&#26631;&#20934;&#24067;&#23616;<\/h3>\n<pre><code>my_go_project\/\n&#9500;&#9472;&#9472; go.mod          # &#27169;&#22359;&#22768;&#26126;&#19982;&#20381;&#36182;&#31649;&#29702;\n&#9500;&#9472;&#9472; go.sum          # &#20381;&#36182;&#21704;&#24076;&#26657;&#39564;\n&#9500;&#9472;&#9472; cmd\/            # &#21487;&#25191;&#34892;&#25991;&#20214;&#20837;&#21475;\n&#9474;   &#9492;&#9472;&#9472; app1\/       # &#27599;&#20010;&#23376;&#30446;&#24405;&#23545;&#24212;&#19968;&#20010;&#20108;&#36827;&#21046;\n&#9474;       &#9492;&#9472;&#9472; main.go\n&#9500;&#9472;&#9472; internal\/       # &#31169;&#26377;&#20195;&#30721;&#65288;&#31105;&#27490;&#22806;&#37096;&#23548;&#20837;&#65289;\n&#9474;   &#9500;&#9472;&#9472; auth\/       # &#35748;&#35777;&#36923;&#36753;\n&#9474;   &#9492;&#9472;&#9472; db\/         # &#25968;&#25454;&#24211;&#23553;&#35013;\n&#9500;&#9472;&#9472; pkg\/            # &#20844;&#20849;&#24211;&#20195;&#30721;&#65288;&#21487;&#36873;&#65289;\n&#9474;   &#9492;&#9472;&#9472; utils\/      # &#36890;&#29992;&#24037;&#20855;&#21253;\n&#9500;&#9472;&#9472; api\/            # API &#23450;&#20041;&#65288;Protobuf\/OpenAPI&#65289;\n&#9500;&#9472;&#9472; configs\/        # &#37197;&#32622;&#25991;&#20214;&#27169;&#26495;\n&#9500;&#9472;&#9472; test\/           # &#27979;&#35797;&#20195;&#30721;&#19982;&#25968;&#25454;\n&#9500;&#9472;&#9472; scripts\/        # &#26500;&#24314;\/&#37096;&#32626;&#33050;&#26412;\n&#9500;&#9472;&#9472; web\/            # &#21069;&#31471;&#36164;&#28304;&#65288;&#21487;&#36873;&#65289;\n&#9492;&#9472;&#9472; vendor\/         # &#20381;&#36182;&#26412;&#22320;&#32531;&#23384;&#65288;&#24050;&#28120;&#27760;&#65292;&#25512;&#33616; go mod&#65289;<\/code><\/pre>\n<h3>&#20851;&#38190;&#30446;&#24405;&#35828;&#26126;<\/h3>\n<ul>\n<li><strong><code>cmd\/<\/code><\/strong>&#65306;&#23384;&#25918;&#21487;&#25191;&#34892;&#25991;&#20214;&#20837;&#21475;&#65292;&#27599;&#20010;&#23376;&#30446;&#24405;&#29420;&#31435;&#32534;&#35793;&#65288;&#22914; <code>go build .\/cmd\/app1<\/code>&#65289;&#12290;<\/li>\n<li><strong><code>internal\/<\/code><\/strong>&#65306;&#26680;&#24515;&#31169;&#26377;&#36923;&#36753;&#65292;&#22914;&#25968;&#25454;&#24211;&#25805;&#20316;&#12289;&#20013;&#38388;&#20214;&#23454;&#29616;&#65292;&#36991;&#20813;&#26292;&#38706;&#20869;&#37096;&#32454;&#33410;&#12290;<\/li>\n<li><strong><code>pkg\/<\/code><\/strong>&#65288;&#21487;&#36873;&#65289;&#65306;&#20844;&#20849;&#24211;&#20195;&#30721;&#65292;&#20379;&#20854;&#20182;&#39033;&#30446;&#24341;&#29992;&#65292;&#38656;&#35880;&#24910;&#35774;&#35745;&#25509;&#21475;&#12290;<\/li>\n<li><strong><code>api\/<\/code><\/strong>&#65306;OpenAPI\/Swagger &#35268;&#33539;&#25110; gRPC Protobuf &#25991;&#20214;&#65292;&#20415;&#20110;&#29983;&#25104;&#23458;&#25143;&#31471;\/&#26381;&#21153;&#31471;&#20195;&#30721;&#12290;<\/li>\n<\/ul>\n<h2>&#27169;&#22359;&#21270;&#19982;&#20195;&#30721;&#32452;&#32455;<\/h2>\n<h3>&#20998;&#23618;&#26550;&#26500;<\/h3>\n<ul>\n<li>\n<p><strong>&#39046;&#22495;&#39537;&#21160;&#35774;&#35745;&#65288;DDD&#65289;<\/strong>&#65306;&#25353;&#19994;&#21153;&#22495;&#21010;&#20998;&#21253;&#65288;&#22914; <code>user\/<\/code>&#12289;<code>order\/<\/code>&#65289;&#65292;&#27599;&#20010;&#22495;&#21253;&#21547;&#27169;&#22411;&#12289;&#26381;&#21153;&#12289;&#23384;&#20648;&#23618;&#65306;<\/p>\n<pre><code>user\/\n&#9500;&#9472;&#9472; model.go      # &#25968;&#25454;&#27169;&#22411;\n&#9500;&#9472;&#9472; service.go    # &#19994;&#21153;&#36923;&#36753;\n&#9492;&#9472;&#9472; repository.go # &#25968;&#25454;&#35775;&#38382;<\/code><\/pre>\n<\/li>\n<li><strong>Clean Architecture<\/strong>&#65306;&#20998;&#31163;&#25509;&#21475;&#12289;&#19994;&#21153;&#36923;&#36753;&#19982;&#22522;&#30784;&#35774;&#26045;&#65292;&#36890;&#36807;&#20381;&#36182;&#27880;&#20837;&#35299;&#32806;&#12290;<\/li>\n<\/ul>\n<h3>&#20195;&#30721;&#25286;&#20998;&#23454;&#36341;<\/h3>\n<ul>\n<li>\n<p><strong>&#25509;&#21475;&#19982;&#23454;&#29616;&#20998;&#31163;<\/strong>&#65306;&#23450;&#20041;&#25509;&#21475;&#20110; <code>pkg\/<\/code>&#65292;&#23454;&#29616;&#22312; <code>internal\/<\/code>&#65292;&#22914;&#65306;<\/p>\n<pre><code class=\"language-go\">\/\/ pkg\/database\/db.go\ntype DB interface {\n  Query(query string) (Result, error)\n}\n\n\/\/ internal\/db\/postgres.go\ntype PostgresDB struct{}\nfunc (p *PostgresDB) Query(query string) (Result, error) { ... }<\/code><\/pre>\n<\/li>\n<li><strong>&#20381;&#36182;&#31649;&#29702;<\/strong>&#65306;&#36890;&#36807; <code>go mod<\/code> &#31649;&#29702;&#29256;&#26412;&#65292;&#20351;&#29992; <code>replace<\/code> &#25351;&#20196;&#22788;&#29702;&#26412;&#22320;&#20381;&#36182;&#12290;<\/li>\n<\/ul>\n<h2>&#39640;&#32423;&#39033;&#30446;&#32467;&#26500;<\/h2>\n<h3>&#22810;&#27169;&#22359;&#24037;&#20316;&#21306;&#65288;Go 1.18+&#65289;<\/h3>\n<ul>\n<li><strong>&#29992;&#36884;<\/strong>&#65306;&#31649;&#29702;&#22810;&#20010;&#20851;&#32852; Module&#65288;&#22914;&#24494;&#26381;&#21153;&#29983;&#24577;&#65289;&#65292;&#20849;&#20139;&#20381;&#36182;&#19982;&#26500;&#24314;&#32531;&#23384;&#12290;<\/li>\n<li>\n<p><strong>&#37197;&#32622;<\/strong>&#65306;&#39030;&#23618; <code>go.work<\/code> &#25991;&#20214;&#23450;&#20041;&#24037;&#20316;&#21306;&#27169;&#22359;&#65306;<\/p>\n<pre><code class=\"language-go\">go 1.18\nuse (\n  .\/service\/user\n  .\/service\/order\n  .\/shared\/auth\n)<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>&#24494;&#26381;&#21153;&#26550;&#26500;<\/h3>\n<ul>\n<li><strong>&#29420;&#31435;&#27169;&#22359;<\/strong>&#65306;&#27599;&#20010;&#26381;&#21153;&#20026;&#29420;&#31435; Module&#65292;&#36890;&#36807; API &#36890;&#20449;&#65292;&#20849;&#20139;&#20844;&#20849;&#24211;&#65288;&#22914; <code>shared\/<\/code> &#30446;&#24405;&#65289;&#12290;<\/li>\n<li><strong>&#30446;&#24405;&#31034;&#20363;<\/strong>&#65306;\n<pre><code>services\/\n&#9500;&#9472;&#9472; user\/          # &#29992;&#25143;&#26381;&#21153;\n&#9474;   &#9500;&#9472;&#9472; cmd\/\n&#9474;   &#9500;&#9472;&#9472; internal\/\n&#9474;   &#9492;&#9472;&#9472; go.mod\n&#9492;&#9472;&#9472; order\/         # &#35746;&#21333;&#26381;&#21153;\n  &#9500;&#9472;&#9472; cmd\/\n  &#9500;&#9472;&#9472; internal\/\n  &#9492;&#9472;&#9472; go.mod\nshared\/\n&#9500;&#9472;&#9472; pkg\/           # &#20844;&#20849;&#24211;\n&#9492;&#9472;&#9472; go.mod<\/code><\/pre>\n<\/li>\n<\/ul>\n<h2>&#24037;&#20855;&#19982;&#21629;&#20196;<\/h2>\n<h3>&#24320;&#21457;&#27969;&#31243;<\/h3>\n<ul>\n<li><strong>&#21021;&#22987;&#21270;&#27169;&#22359;<\/strong>&#65306;<code>go mod init github.com\/user\/mymodule<\/code>&#12290;<\/li>\n<li><strong>&#20381;&#36182;&#31649;&#29702;<\/strong>&#65306;\n<ul>\n<li>&#28155;&#21152;&#20381;&#36182;&#65306;<code>go get github.com\/pkg\/errors@v0.9.1<\/code>&#12290;<\/li>\n<li>&#28165;&#29702;&#26080;&#29992;&#20381;&#36182;&#65306;<code>go mod tidy<\/code>&#12290;<\/li>\n<\/ul>\n<\/li>\n<li><strong>&#26500;&#24314;&#19982;&#27979;&#35797;<\/strong>&#65306;\n<ul>\n<li>&#32534;&#35793;&#65306;<code>go build -o bin\/app .\/cmd\/app1<\/code>&#12290;<\/li>\n<li>&#27979;&#35797;&#65306;<code>go test -v .\/...<\/code>&#65288;&#25903;&#25345;&#21333;&#20803;\/&#38598;&#25104;&#27979;&#35797;&#65289;&#12290;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>&#24615;&#33021;&#20248;&#21270;<\/h3>\n<ul>\n<li><strong>&#20381;&#36182;&#20998;&#26512;<\/strong>&#65306;<code>go mod why &lt;pkg&gt;<\/code> &#26597;&#30475;&#20381;&#36182;&#36335;&#24452;&#12290;<\/li>\n<li><strong>&#36867;&#36920;&#20998;&#26512;<\/strong>&#65306;<code>go build -gcflags=\"-m\"<\/code> &#26816;&#27979;&#22534;&#20869;&#23384;&#20998;&#37197;&#12290;<\/li>\n<\/ul>\n<h2>&#24635;&#32467;<\/h2>\n<p>Go &#39033;&#30446;&#36890;&#36807; <strong>Module &rarr; Package &rarr; Internal<\/strong> &#19977;&#32423;&#32467;&#26500;&#23454;&#29616;&#39640;&#25928;&#32452;&#32455;&#65292;&#32467;&#21512;&#26631;&#20934;&#30446;&#24405;&#32422;&#23450;&#65288;cmd\/internal\/pkg&#65289;&#19982;&#27169;&#22359;&#21270;&#35774;&#35745;&#65292;&#20860;&#39038;&#23567;&#22411;&#39033;&#30446;&#25935;&#25463;&#24320;&#21457;&#19982;&#22823;&#22411;&#31995;&#32479;&#21487;&#32500;&#25252;&#24615;&#12290;&#20851;&#38190;&#23454;&#36341;&#21253;&#25324;&#65306;<\/p>\n<ol>\n<li><strong>&#20005;&#26684;&#20998;&#23618;<\/strong>&#65306;&#36890;&#36807; internal &#38480;&#21046;&#21487;&#35265;&#24615;&#65292;pkg &#26292;&#38706;&#31283;&#23450;&#25509;&#21475;&#12290;<\/li>\n<li><strong>&#20381;&#36182;&#38548;&#31163;<\/strong>&#65306;&#21033;&#29992; go.mod &#31649;&#29702;&#29256;&#26412;&#65292;&#22810;&#27169;&#22359;&#24037;&#20316;&#21306;&#20248;&#21270;&#21327;&#20316;&#12290;<\/li>\n<li><strong>&#39046;&#22495;&#39537;&#21160;<\/strong>&#65306;&#25353;&#19994;&#21153;&#25286;&#20998;&#30446;&#24405;&#65292;&#32467;&#21512; DDD &#25110; Clean Architecture &#25552;&#21319;&#20869;&#32858;&#24615;&#12290;<\/li>\n<\/ol>\n<p>&#36981;&#24490;&#19978;&#36848;&#21407;&#21017;&#65292;&#21487;&#26500;&#24314;&#20986;&#39640;&#21487;&#35835;&#12289;&#26131;&#25193;&#23637;&#30340; Go &#39033;&#30446;&#65292;&#36866;&#24212;&#20174;&#21333;&#20307;&#24212;&#29992;&#21040;&#24494;&#26381;&#21153;&#29983;&#24577;&#30340;&#22810;&#26679;&#21270;&#22330;&#26223;&#12290;<\/p>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>&#26412;&#25991;&#26159;&#23545; Go &#39033;&#30446;&#038;#3&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"class_list":["post-412","post","type-post","status-publish","format-standard","hentry","category-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Go \u9879\u76ee\u7ed3\u6784 - \u4f9d\u51e1\u7684 Wordpress<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blog.yfstudio.online\/?p=412\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Go \u9879\u76ee\u7ed3\u6784 - \u4f9d\u51e1\u7684 Wordpress\" \/>\n<meta property=\"og:description\" content=\"&#26412;&#25991;&#26159;&#23545; Go &#39033;&#30446;&amp;#3&hellip;\" \/>\n<meta property=\"og:url\" content=\"http:\/\/blog.yfstudio.online\/?p=412\" \/>\n<meta property=\"og:site_name\" content=\"\u4f9d\u51e1\u7684 Wordpress\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-30T09:24:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-30T10:35:26+00:00\" \/>\n<meta name=\"author\" content=\"\u4f9d\u51e1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u4f9d\u51e1\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/blog.yfstudio.online\/?p=412#article\",\"isPartOf\":{\"@id\":\"http:\/\/blog.yfstudio.online\/?p=412\"},\"author\":{\"name\":\"\u4f9d\u51e1\",\"@id\":\"http:\/\/blog.yfstudio.online\/#\/schema\/person\/347dc2b9e49d9ab18b527a487874bb08\"},\"headline\":\"Go \u9879\u76ee\u7ed3\u6784\",\"datePublished\":\"2025-03-30T09:24:47+00:00\",\"dateModified\":\"2025-03-30T10:35:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/blog.yfstudio.online\/?p=412\"},\"wordCount\":44,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/blog.yfstudio.online\/#organization\"},\"articleSection\":[\"\u7f16\u7a0b\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/blog.yfstudio.online\/?p=412#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/blog.yfstudio.online\/?p=412\",\"url\":\"http:\/\/blog.yfstudio.online\/?p=412\",\"name\":\"Go \u9879\u76ee\u7ed3\u6784 - \u4f9d\u51e1\u7684 Wordpress\",\"isPartOf\":{\"@id\":\"http:\/\/blog.yfstudio.online\/#website\"},\"datePublished\":\"2025-03-30T09:24:47+00:00\",\"dateModified\":\"2025-03-30T10:35:26+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/blog.yfstudio.online\/?p=412#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/blog.yfstudio.online\/?p=412\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/blog.yfstudio.online\/?p=412#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"http:\/\/blog.yfstudio.online\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Go \u9879\u76ee\u7ed3\u6784\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/blog.yfstudio.online\/#website\",\"url\":\"http:\/\/blog.yfstudio.online\/\",\"name\":\"\u4f9d\u51e1\u7684 Wordpress\",\"description\":\"\",\"publisher\":{\"@id\":\"http:\/\/blog.yfstudio.online\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/blog.yfstudio.online\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/blog.yfstudio.online\/#organization\",\"name\":\"YFStudio\",\"url\":\"http:\/\/blog.yfstudio.online\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/blog.yfstudio.online\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/blog.yfstudio.online\/wp-content\/uploads\/2025\/02\/YF-Studio_logo.png\",\"contentUrl\":\"http:\/\/blog.yfstudio.online\/wp-content\/uploads\/2025\/02\/YF-Studio_logo.png\",\"width\":1600,\"height\":800,\"caption\":\"YFStudio\"},\"image\":{\"@id\":\"http:\/\/blog.yfstudio.online\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/space.bilibili.com\/549933280\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/blog.yfstudio.online\/#\/schema\/person\/347dc2b9e49d9ab18b527a487874bb08\",\"name\":\"\u4f9d\u51e1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/blog.yfstudio.online\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/cravatar.com\/avatar\/2bf3633204b745b9bfe9ec1e86f14422?s=96&d=mm&r=g&cache-key=2bf3633204b745b9bfe9ec1e86f14422\",\"contentUrl\":\"https:\/\/cravatar.com\/avatar\/2bf3633204b745b9bfe9ec1e86f14422?s=96&d=mm&r=g&cache-key=2bf3633204b745b9bfe9ec1e86f14422\",\"caption\":\"\u4f9d\u51e1\"},\"sameAs\":[\"http:\/\/blog.yfstudio.online\"],\"url\":\"http:\/\/blog.yfstudio.online\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Go \u9879\u76ee\u7ed3\u6784 - \u4f9d\u51e1\u7684 Wordpress","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/blog.yfstudio.online\/?p=412","og_locale":"zh_CN","og_type":"article","og_title":"Go \u9879\u76ee\u7ed3\u6784 - \u4f9d\u51e1\u7684 Wordpress","og_description":"&#26412;&#25991;&#26159;&#23545; Go &#39033;&#30446;&#3&hellip;","og_url":"http:\/\/blog.yfstudio.online\/?p=412","og_site_name":"\u4f9d\u51e1\u7684 Wordpress","article_published_time":"2025-03-30T09:24:47+00:00","article_modified_time":"2025-03-30T10:35:26+00:00","author":"\u4f9d\u51e1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u4f9d\u51e1"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blog.yfstudio.online\/?p=412#article","isPartOf":{"@id":"http:\/\/blog.yfstudio.online\/?p=412"},"author":{"name":"\u4f9d\u51e1","@id":"http:\/\/blog.yfstudio.online\/#\/schema\/person\/347dc2b9e49d9ab18b527a487874bb08"},"headline":"Go \u9879\u76ee\u7ed3\u6784","datePublished":"2025-03-30T09:24:47+00:00","dateModified":"2025-03-30T10:35:26+00:00","mainEntityOfPage":{"@id":"http:\/\/blog.yfstudio.online\/?p=412"},"wordCount":44,"commentCount":0,"publisher":{"@id":"http:\/\/blog.yfstudio.online\/#organization"},"articleSection":["\u7f16\u7a0b"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blog.yfstudio.online\/?p=412#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blog.yfstudio.online\/?p=412","url":"http:\/\/blog.yfstudio.online\/?p=412","name":"Go \u9879\u76ee\u7ed3\u6784 - \u4f9d\u51e1\u7684 Wordpress","isPartOf":{"@id":"http:\/\/blog.yfstudio.online\/#website"},"datePublished":"2025-03-30T09:24:47+00:00","dateModified":"2025-03-30T10:35:26+00:00","breadcrumb":{"@id":"http:\/\/blog.yfstudio.online\/?p=412#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blog.yfstudio.online\/?p=412"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/blog.yfstudio.online\/?p=412#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"http:\/\/blog.yfstudio.online\/"},{"@type":"ListItem","position":2,"name":"Go \u9879\u76ee\u7ed3\u6784"}]},{"@type":"WebSite","@id":"http:\/\/blog.yfstudio.online\/#website","url":"http:\/\/blog.yfstudio.online\/","name":"\u4f9d\u51e1\u7684 Wordpress","description":"","publisher":{"@id":"http:\/\/blog.yfstudio.online\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/blog.yfstudio.online\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"http:\/\/blog.yfstudio.online\/#organization","name":"YFStudio","url":"http:\/\/blog.yfstudio.online\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/blog.yfstudio.online\/#\/schema\/logo\/image\/","url":"http:\/\/blog.yfstudio.online\/wp-content\/uploads\/2025\/02\/YF-Studio_logo.png","contentUrl":"http:\/\/blog.yfstudio.online\/wp-content\/uploads\/2025\/02\/YF-Studio_logo.png","width":1600,"height":800,"caption":"YFStudio"},"image":{"@id":"http:\/\/blog.yfstudio.online\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/space.bilibili.com\/549933280"]},{"@type":"Person","@id":"http:\/\/blog.yfstudio.online\/#\/schema\/person\/347dc2b9e49d9ab18b527a487874bb08","name":"\u4f9d\u51e1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/blog.yfstudio.online\/#\/schema\/person\/image\/","url":"https:\/\/cravatar.com\/avatar\/2bf3633204b745b9bfe9ec1e86f14422?s=96&d=mm&r=g&cache-key=2bf3633204b745b9bfe9ec1e86f14422","contentUrl":"https:\/\/cravatar.com\/avatar\/2bf3633204b745b9bfe9ec1e86f14422?s=96&d=mm&r=g&cache-key=2bf3633204b745b9bfe9ec1e86f14422","caption":"\u4f9d\u51e1"},"sameAs":["http:\/\/blog.yfstudio.online"],"url":"http:\/\/blog.yfstudio.online\/?author=1"}]}},"_links":{"self":[{"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=\/wp\/v2\/posts\/412","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=412"}],"version-history":[{"count":1,"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=\/wp\/v2\/posts\/412\/revisions"}],"predecessor-version":[{"id":413,"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=\/wp\/v2\/posts\/412\/revisions\/413"}],"wp:attachment":[{"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=412"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.yfstudio.online\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}