Files

1 line
47 KiB
JavaScript

"use strict";(globalThis.webpackChunkblog=globalThis.webpackChunkblog||[]).push([[9173],{28453:(n,e,t)=>{t.d(e,{R:()=>d,x:()=>c});var s=t(96540);const r={},i=s.createContext(r);function d(n){const e=s.useContext(i);return s.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:d(n.components),s.createElement(i.Provider,{value:e},n.children)}},41108:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>d,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"\u4e2a\u4eba\u77e5\u8bc6\u5e93/\u8bed\u8a00\u77e5\u8bc6/Go/Go\u57fa\u7840\u7f16\u7a0b/GoLang-\u7ed3\u6784\u4f53","title":"Go\u8bed\u8a00\u57fa\u7840\u4e4b\u7ed3\u6784\u4f53","description":"\u7c7b\u578b\u522b\u540d\u548c\u81ea\u5b9a\u4e49\u7c7b\u578b","source":"@site/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/05.\u8bed\u8a00\u77e5\u8bc6/03.Go/01.Go\u57fa\u7840\u7f16\u7a0b/14.GoLang-\u7ed3\u6784\u4f53.md","sourceDirName":"\u4e2a\u4eba\u77e5\u8bc6\u5e93/05.\u8bed\u8a00\u77e5\u8bc6/03.Go/01.Go\u57fa\u7840\u7f16\u7a0b","slug":"/\u4e2a\u4eba\u77e5\u8bc6\u5e93/\u8bed\u8a00\u77e5\u8bc6/Go/Go\u57fa\u7840\u7f16\u7a0b/GoLang-\u7ed3\u6784\u4f53","permalink":"/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/\u8bed\u8a00\u77e5\u8bc6/Go/Go\u57fa\u7840\u7f16\u7a0b/GoLang-\u7ed3\u6784\u4f53","draft":false,"unlisted":false,"editUrl":"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/05.\u8bed\u8a00\u77e5\u8bc6/03.Go/01.Go\u57fa\u7840\u7f16\u7a0b/14.GoLang-\u7ed3\u6784\u4f53.md","tags":[],"version":"current","sidebarPosition":14,"frontMatter":{},"sidebar":"tutorialSidebar","previous":{"title":"Redis","permalink":"/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/\u8bed\u8a00\u77e5\u8bc6/Go/Go\u57fa\u7840\u7f16\u7a0b/GoLang-\u64cd\u4f5cRedis"},"next":{"title":"\u5305\u4e0e\u4f9d\u8d56\u7ba1\u7406","permalink":"/docs/\u4e2a\u4eba\u77e5\u8bc6\u5e93/\u8bed\u8a00\u77e5\u8bc6/Go/Go\u57fa\u7840\u7f16\u7a0b/GoLang-\u5305"}}');var r=t(74848),i=t(28453);const d={},c="Go\u8bed\u8a00\u57fa\u7840\u4e4b\u7ed3\u6784\u4f53",l={},a=[{value:"\u7c7b\u578b\u522b\u540d\u548c\u81ea\u5b9a\u4e49\u7c7b\u578b",id:"\u7c7b\u578b\u522b\u540d\u548c\u81ea\u5b9a\u4e49\u7c7b\u578b",level:2},{value:"\u81ea\u5b9a\u4e49\u7c7b\u578b",id:"\u81ea\u5b9a\u4e49\u7c7b\u578b",level:3},{value:"\u7c7b\u578b\u522b\u540d",id:"\u7c7b\u578b\u522b\u540d",level:3},{value:"\u7c7b\u578b\u5b9a\u4e49\u548c\u7c7b\u578b\u522b\u540d\u7684\u533a\u522b",id:"\u7c7b\u578b\u5b9a\u4e49\u548c\u7c7b\u578b\u522b\u540d\u7684\u533a\u522b",level:3},{value:"\u7ed3\u6784\u4f53",id:"\u7ed3\u6784\u4f53",level:2},{value:"\u7ed3\u6784\u4f53\u7684\u5b9a\u4e49",id:"\u7ed3\u6784\u4f53\u7684\u5b9a\u4e49",level:3},{value:"\u7ed3\u6784\u4f53\u5b9e\u4f8b\u5316",id:"\u7ed3\u6784\u4f53\u5b9e\u4f8b\u5316",level:3},{value:"\u57fa\u672c\u5b9e\u4f8b\u5316",id:"\u57fa\u672c\u5b9e\u4f8b\u5316",level:4},{value:"\u533f\u540d\u7ed3\u6784\u4f53",id:"\u533f\u540d\u7ed3\u6784\u4f53",level:4},{value:"\u521b\u5efa\u6307\u9488\u7c7b\u578b\u7ed3\u6784\u4f53",id:"\u521b\u5efa\u6307\u9488\u7c7b\u578b\u7ed3\u6784\u4f53",level:4},{value:"\u53d6\u7ed3\u6784\u4f53\u7684\u5730\u5740\u5b9e\u4f8b\u5316",id:"\u53d6\u7ed3\u6784\u4f53\u7684\u5730\u5740\u5b9e\u4f8b\u5316",level:4},{value:"\u7ed3\u6784\u4f53\u521d\u59cb\u5316",id:"\u7ed3\u6784\u4f53\u521d\u59cb\u5316",level:3},{value:"\u4f7f\u7528\u952e\u503c\u5bf9\u521d\u59cb\u5316",id:"\u4f7f\u7528\u952e\u503c\u5bf9\u521d\u59cb\u5316",level:4},{value:"\u4f7f\u7528\u503c\u7684\u5217\u8868\u521d\u59cb\u5316",id:"\u4f7f\u7528\u503c\u7684\u5217\u8868\u521d\u59cb\u5316",level:4},{value:"\u7ed3\u6784\u4f53\u5185\u5b58\u5e03\u5c40",id:"\u7ed3\u6784\u4f53\u5185\u5b58\u5e03\u5c40",level:3},{value:"\u7a7a\u7ed3\u6784\u4f53",id:"\u7a7a\u7ed3\u6784\u4f53",level:4},{value:"\u9762\u8bd5\u9898",id:"\u9762\u8bd5\u9898",level:3},{value:"\u6784\u9020\u51fd\u6570",id:"\u6784\u9020\u51fd\u6570",level:3},{value:"\u65b9\u6cd5\u548c\u63a5\u6536\u8005",id:"\u65b9\u6cd5\u548c\u63a5\u6536\u8005",level:3},{value:"\u6307\u9488\u7c7b\u578b\u7684\u63a5\u6536\u8005",id:"\u6307\u9488\u7c7b\u578b\u7684\u63a5\u6536\u8005",level:4},{value:"\u503c\u7c7b\u578b\u7684\u63a5\u6536\u8005",id:"\u503c\u7c7b\u578b\u7684\u63a5\u6536\u8005",level:4},{value:"\u4ec0\u4e48\u65f6\u5019\u5e94\u8be5\u4f7f\u7528\u6307\u9488\u7c7b\u578b\u63a5\u6536\u8005",id:"\u4ec0\u4e48\u65f6\u5019\u5e94\u8be5\u4f7f\u7528\u6307\u9488\u7c7b\u578b\u63a5\u6536\u8005",level:4},{value:"\u4efb\u610f\u7c7b\u578b\u6dfb\u52a0\u65b9\u6cd5",id:"\u4efb\u610f\u7c7b\u578b\u6dfb\u52a0\u65b9\u6cd5",level:3},{value:"\u7ed3\u6784\u4f53\u7684\u533f\u540d\u5b57\u6bb5",id:"\u7ed3\u6784\u4f53\u7684\u533f\u540d\u5b57\u6bb5",level:3},{value:"\u5d4c\u5957\u7ed3\u6784\u4f53",id:"\u5d4c\u5957\u7ed3\u6784\u4f53",level:3},{value:"\u5d4c\u5957\u533f\u540d\u5b57\u6bb5",id:"\u5d4c\u5957\u533f\u540d\u5b57\u6bb5",level:4},{value:"\u5d4c\u5957\u7ed3\u6784\u4f53\u7684\u5b57\u6bb5\u540d\u51b2\u7a81",id:"\u5d4c\u5957\u7ed3\u6784\u4f53\u7684\u5b57\u6bb5\u540d\u51b2\u7a81",level:4},{value:"\u7ed3\u6784\u4f53\u7684\u201c\u7ee7\u627f\u201d",id:"\u7ed3\u6784\u4f53\u7684\u7ee7\u627f",level:3},{value:"\u7ed3\u6784\u4f53\u5b57\u6bb5\u7684\u53ef\u89c1\u6027",id:"\u7ed3\u6784\u4f53\u5b57\u6bb5\u7684\u53ef\u89c1\u6027",level:3},{value:"\u7ed3\u6784\u4f53\u4e0eJSON\u5e8f\u5217\u5316",id:"\u7ed3\u6784\u4f53\u4e0ejson\u5e8f\u5217\u5316",level:3},{value:"\u7ed3\u6784\u4f53\u6807\u7b7e\uff08Tag\uff09",id:"\u7ed3\u6784\u4f53\u6807\u7b7etag",level:3},{value:"\u7ed3\u6784\u4f53\u548c\u65b9\u6cd5\u8865\u5145\u77e5\u8bc6\u70b9",id:"\u7ed3\u6784\u4f53\u548c\u65b9\u6cd5\u8865\u5145\u77e5\u8bc6\u70b9",level:3}];function o(n){const e={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"go\u8bed\u8a00\u57fa\u7840\u4e4b\u7ed3\u6784\u4f53",children:"Go\u8bed\u8a00\u57fa\u7840\u4e4b\u7ed3\u6784\u4f53"})}),"\n",(0,r.jsx)(e.h2,{id:"\u7c7b\u578b\u522b\u540d\u548c\u81ea\u5b9a\u4e49\u7c7b\u578b",children:"\u7c7b\u578b\u522b\u540d\u548c\u81ea\u5b9a\u4e49\u7c7b\u578b"}),"\n",(0,r.jsx)(e.h3,{id:"\u81ea\u5b9a\u4e49\u7c7b\u578b",children:"\u81ea\u5b9a\u4e49\u7c7b\u578b"}),"\n",(0,r.jsxs)(e.p,{children:["\u5728Go\u8bed\u8a00\u4e2d\u6709\u4e00\u4e9b\u57fa\u672c\u7684\u6570\u636e\u7c7b\u578b\uff0c\u5982",(0,r.jsx)(e.code,{children:"string"}),"\u3001",(0,r.jsx)(e.code,{children:"\u6574\u578b"}),"\u3001",(0,r.jsx)(e.code,{children:"\u6d6e\u70b9\u578b"}),"\u3001",(0,r.jsx)(e.code,{children:"\u5e03\u5c14"}),"\u7b49\u6570\u636e\u7c7b\u578b\uff0c Go\u8bed\u8a00\u4e2d\u53ef\u4ee5\u4f7f\u7528",(0,r.jsx)(e.code,{children:"type"}),"\u5173\u952e\u5b57\u6765\u5b9a\u4e49\u81ea\u5b9a\u4e49\u7c7b\u578b\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"\u81ea\u5b9a\u4e49\u7c7b\u578b\u662f\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5168\u65b0\u7684\u7c7b\u578b\u3002\u6211\u4eec\u53ef\u4ee5\u57fa\u4e8e\u5185\u7f6e\u7684\u57fa\u672c\u7c7b\u578b\u5b9a\u4e49\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7struct\u5b9a\u4e49\u3002\u4f8b\u5982\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"//\u5c06MyInt\u5b9a\u4e49\u4e3aint\u7c7b\u578b\ntype MyInt int\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u901a\u8fc7",(0,r.jsx)(e.code,{children:"type"}),"\u5173\u952e\u5b57\u7684\u5b9a\u4e49\uff0c",(0,r.jsx)(e.code,{children:"MyInt"}),"\u5c31\u662f\u4e00\u79cd\u65b0\u7684\u7c7b\u578b\uff0c\u5b83\u5177\u6709",(0,r.jsx)(e.code,{children:"int"}),"\u7684\u7279\u6027\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"\u7c7b\u578b\u522b\u540d",children:"\u7c7b\u578b\u522b\u540d"}),"\n",(0,r.jsxs)(e.p,{children:["\u7c7b\u578b\u522b\u540d\u662f",(0,r.jsx)(e.code,{children:"Go1.9"}),"\u7248\u672c\u6dfb\u52a0\u7684\u65b0\u529f\u80fd\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"\u7c7b\u578b\u522b\u540d\u89c4\u5b9a\uff1aTypeAlias\u53ea\u662fType\u7684\u522b\u540d\uff0c\u672c\u8d28\u4e0aTypeAlias\u4e0eType\u662f\u540c\u4e00\u4e2a\u7c7b\u578b\u3002\u5c31\u50cf\u4e00\u4e2a\u5b69\u5b50\u5c0f\u65f6\u5019\u6709\u5c0f\u540d\u3001\u4e73\u540d\uff0c\u4e0a\u5b66\u540e\u7528\u5b66\u540d\uff0c\u82f1\u8bed\u8001\u5e08\u53c8\u4f1a\u7ed9\u4ed6\u8d77\u82f1\u6587\u540d\uff0c\u4f46\u8fd9\u4e9b\u540d\u5b57\u90fd\u6307\u7684\u662f\u4ed6\u672c\u4eba\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"type TypeAlias = Type\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u6211\u4eec\u4e4b\u524d\u89c1\u8fc7\u7684",(0,r.jsx)(e.code,{children:"rune"}),"\u548c",(0,r.jsx)(e.code,{children:"byte"}),"\u5c31\u662f\u7c7b\u578b\u522b\u540d\uff0c\u4ed6\u4eec\u7684\u5b9a\u4e49\u5982\u4e0b\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"type byte = uint8\ntype rune = int32\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u7c7b\u578b\u5b9a\u4e49\u548c\u7c7b\u578b\u522b\u540d\u7684\u533a\u522b",children:"\u7c7b\u578b\u5b9a\u4e49\u548c\u7c7b\u578b\u522b\u540d\u7684\u533a\u522b"}),"\n",(0,r.jsx)(e.p,{children:"\u7c7b\u578b\u522b\u540d\u4e0e\u7c7b\u578b\u5b9a\u4e49\u8868\u9762\u4e0a\u770b\u53ea\u6709\u4e00\u4e2a\u7b49\u53f7\u7684\u5dee\u5f02\uff0c\u6211\u4eec\u901a\u8fc7\u4e0b\u9762\u7684\u8fd9\u6bb5\u4ee3\u7801\u6765\u7406\u89e3\u5b83\u4eec\u4e4b\u95f4\u7684\u533a\u522b\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//\u7c7b\u578b\u5b9a\u4e49\ntype NewInt int\n\n//\u7c7b\u578b\u522b\u540d\ntype MyInt = int\n\nfunc main() {\n\tvar a NewInt\n\tvar b MyInt\n\t\n\tfmt.Printf("type of a:%T\\n", a) //type of a:main.NewInt\n\tfmt.Printf("type of b:%T\\n", b) //type of b:int\n}\n'})}),"\n",(0,r.jsxs)(e.p,{children:["\u7ed3\u679c\u663e\u793aa\u7684\u7c7b\u578b\u662f",(0,r.jsx)(e.code,{children:"main.NewInt"}),"\uff0c\u8868\u793amain\u5305\u4e0b\u5b9a\u4e49\u7684",(0,r.jsx)(e.code,{children:"NewInt"}),"\u7c7b\u578b\u3002b\u7684\u7c7b\u578b\u662f",(0,r.jsx)(e.code,{children:"int"}),"\u3002",(0,r.jsx)(e.code,{children:"MyInt"}),"\u7c7b\u578b\u53ea\u4f1a\u5728\u4ee3\u7801\u4e2d\u5b58\u5728\uff0c\u7f16\u8bd1\u5b8c\u6210\u65f6\u5e76\u4e0d\u4f1a\u6709",(0,r.jsx)(e.code,{children:"MyInt"}),"\u7c7b\u578b\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"\u7ed3\u6784\u4f53",children:"\u7ed3\u6784\u4f53"}),"\n",(0,r.jsxs)(e.p,{children:["Go\u8bed\u8a00\u4e2d\u7684\u57fa\u7840\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u8868\u793a\u4e00\u4e9b\u4e8b\u7269\u7684\u57fa\u672c\u5c5e\u6027\uff0c\u4f46\u662f\u5f53\u6211\u4eec\u60f3\u8868\u8fbe\u4e00\u4e2a\u4e8b\u7269\u7684\u5168\u90e8\u6216\u90e8\u5206\u5c5e\u6027\u65f6\uff0c\u8fd9\u65f6\u5019\u518d\u7528\u5355\u4e00\u7684\u57fa\u672c\u6570\u636e\u7c7b\u578b\u660e\u663e\u5c31\u65e0\u6cd5\u6ee1\u8db3\u9700\u6c42\u4e86\uff0cGo\u8bed\u8a00\u63d0\u4f9b\u4e86\u4e00\u79cd\u81ea\u5b9a\u4e49\u6570\u636e\u7c7b\u578b\uff0c\u53ef\u4ee5\u5c01\u88c5\u591a\u4e2a\u57fa\u672c\u6570\u636e\u7c7b\u578b\uff0c\u8fd9\u79cd\u6570\u636e\u7c7b\u578b\u53eb\u7ed3\u6784\u4f53\uff0c\u82f1\u6587\u540d\u79f0",(0,r.jsx)(e.code,{children:"struct"}),"\u3002 \u4e5f\u5c31\u662f\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7",(0,r.jsx)(e.code,{children:"struct"}),"\u6765\u5b9a\u4e49\u81ea\u5df1\u7684\u7c7b\u578b\u4e86\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["Go\u8bed\u8a00\u4e2d\u901a\u8fc7",(0,r.jsx)(e.code,{children:"struct"}),"\u6765\u5b9e\u73b0\u9762\u5411\u5bf9\u8c61\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u7684\u5b9a\u4e49",children:"\u7ed3\u6784\u4f53\u7684\u5b9a\u4e49"}),"\n",(0,r.jsxs)(e.p,{children:["\u4f7f\u7528",(0,r.jsx)(e.code,{children:"type"}),"\u548c",(0,r.jsx)(e.code,{children:"struct"}),"\u5173\u952e\u5b57\u6765\u5b9a\u4e49\u7ed3\u6784\u4f53\uff0c\u5177\u4f53\u4ee3\u7801\u683c\u5f0f\u5982\u4e0b\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"type \u7c7b\u578b\u540d struct {\n \u5b57\u6bb5\u540d \u5b57\u6bb5\u7c7b\u578b\n \u5b57\u6bb5\u540d \u5b57\u6bb5\u7c7b\u578b\n \u2026\n}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d\uff1a"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u7c7b\u578b\u540d\uff1a\u6807\u8bc6\u81ea\u5b9a\u4e49\u7ed3\u6784\u4f53\u7684\u540d\u79f0\uff0c\u5728\u540c\u4e00\u4e2a\u5305\u5185\u4e0d\u80fd\u91cd\u590d\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u5b57\u6bb5\u540d\uff1a\u8868\u793a\u7ed3\u6784\u4f53\u5b57\u6bb5\u540d\u3002\u7ed3\u6784\u4f53\u4e2d\u7684\u5b57\u6bb5\u540d\u5fc5\u987b\u552f\u4e00\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u5b57\u6bb5\u7c7b\u578b\uff1a\u8868\u793a\u7ed3\u6784\u4f53\u5b57\u6bb5\u7684\u5177\u4f53\u7c7b\u578b\u3002"}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u6211\u4eec\u5b9a\u4e49\u4e00\u4e2a",(0,r.jsx)(e.code,{children:"Person"}),"\uff08\u4eba\uff09\u7ed3\u6784\u4f53\uff0c\u4ee3\u7801\u5982\u4e0b\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"type person struct {\n\tname string\n\tcity string\n\tage int8\n}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u540c\u6837\u7c7b\u578b\u7684\u5b57\u6bb5\u4e5f\u53ef\u4ee5\u5199\u5728\u4e00\u884c\uff0c"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"type person1 struct {\n\tname, city string\n\tage int8\n}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u8fd9\u6837\u6211\u4eec\u5c31\u62e5\u6709\u4e86\u4e00\u4e2a",(0,r.jsx)(e.code,{children:"person"}),"\u7684\u81ea\u5b9a\u4e49\u7c7b\u578b\uff0c\u5b83\u6709",(0,r.jsx)(e.code,{children:"name"}),"\u3001",(0,r.jsx)(e.code,{children:"city"}),"\u3001",(0,r.jsx)(e.code,{children:"age"}),"\u4e09\u4e2a\u5b57\u6bb5\uff0c\u5206\u522b\u8868\u793a\u59d3\u540d\u3001\u57ce\u5e02\u548c\u5e74\u9f84\u3002\u8fd9\u6837\u6211\u4eec\u4f7f\u7528\u8fd9\u4e2a",(0,r.jsx)(e.code,{children:"person"}),"\u7ed3\u6784\u4f53\u5c31\u80fd\u591f\u5f88\u65b9\u4fbf\u7684\u5728\u7a0b\u5e8f\u4e2d\u8868\u793a\u548c\u5b58\u50a8\u4eba\u4fe1\u606f\u4e86\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"\u8bed\u8a00\u5185\u7f6e\u7684\u57fa\u7840\u6570\u636e\u7c7b\u578b\u662f\u7528\u6765\u63cf\u8ff0\u4e00\u4e2a\u503c\u7684\uff0c\u800c\u7ed3\u6784\u4f53\u662f\u7528\u6765\u63cf\u8ff0\u4e00\u7ec4\u503c\u7684\u3002\u6bd4\u5982\u4e00\u4e2a\u4eba\u6709\u540d\u5b57\u3001\u5e74\u9f84\u548c\u5c45\u4f4f\u57ce\u5e02\u7b49\uff0c\u672c\u8d28\u4e0a\u662f\u4e00\u79cd\u805a\u5408\u578b\u7684\u6570\u636e\u7c7b\u578b"}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u5b9e\u4f8b\u5316",children:"\u7ed3\u6784\u4f53\u5b9e\u4f8b\u5316"}),"\n",(0,r.jsx)(e.p,{children:"\u53ea\u6709\u5f53\u7ed3\u6784\u4f53\u5b9e\u4f8b\u5316\u65f6\uff0c\u624d\u4f1a\u771f\u6b63\u5730\u5206\u914d\u5185\u5b58\u3002\u4e5f\u5c31\u662f\u5fc5\u987b\u5b9e\u4f8b\u5316\u540e\u624d\u80fd\u4f7f\u7528\u7ed3\u6784\u4f53\u7684\u5b57\u6bb5\u3002"}),"\n",(0,r.jsxs)(e.p,{children:["\u7ed3\u6784\u4f53\u672c\u8eab\u4e5f\u662f\u4e00\u79cd\u7c7b\u578b\uff0c\u6211\u4eec\u53ef\u4ee5\u50cf\u58f0\u660e\u5185\u7f6e\u7c7b\u578b\u4e00\u6837\u4f7f\u7528",(0,r.jsx)(e.code,{children:"var"}),"\u5173\u952e\u5b57\u58f0\u660e\u7ed3\u6784\u4f53\u7c7b\u578b\u3002"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"var \u7ed3\u6784\u4f53\u5b9e\u4f8b \u7ed3\u6784\u4f53\u7c7b\u578b\n"})}),"\n",(0,r.jsx)(e.h4,{id:"\u57fa\u672c\u5b9e\u4f8b\u5316",children:"\u57fa\u672c\u5b9e\u4f8b\u5316"}),"\n",(0,r.jsx)(e.p,{children:"\u4e3e\u4e2a\u4f8b\u5b50\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'type person struct {\n\tname string\n\tcity string\n\tage int8\n}\n\nfunc main() {\n\tvar p1 person\n\tp1.name = "\u6c99\u6cb3\u5a1c\u624e"\n\tp1.city = "\u5317\u4eac"\n\tp1.age = 18\n\tfmt.Printf("p1=%v\\n", p1) //p1={\u6c99\u6cb3\u5a1c\u624e \u5317\u4eac 18}\n\tfmt.Printf("p1=%#v\\n", p1) //p1=main.person{name:"\u6c99\u6cb3\u5a1c\u624e", city:"\u5317\u4eac", age:18}\n}\n'})}),"\n",(0,r.jsxs)(e.p,{children:["\u6211\u4eec\u901a\u8fc7",(0,r.jsx)(e.code,{children:"."}),"\u6765\u8bbf\u95ee\u7ed3\u6784\u4f53\u7684\u5b57\u6bb5\uff08\u6210\u5458\u53d8\u91cf\uff09,\u4f8b\u5982",(0,r.jsx)(e.code,{children:"p1.name"}),"\u548c",(0,r.jsx)(e.code,{children:"p1.age"}),"\u7b49\u3002"]}),"\n",(0,r.jsx)(e.h4,{id:"\u533f\u540d\u7ed3\u6784\u4f53",children:"\u533f\u540d\u7ed3\u6784\u4f53"}),"\n",(0,r.jsx)(e.p,{children:"\u5728\u5b9a\u4e49\u4e00\u4e9b\u4e34\u65f6\u6570\u636e\u7ed3\u6784\u7b49\u573a\u666f\u4e0b\u8fd8\u53ef\u4ee5\u4f7f\u7528\u533f\u540d\u7ed3\u6784\u4f53\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'package main\n \nimport (\n "fmt"\n)\n \nfunc main() {\n var user struct{Name string; Age int}\n user.Name = "\u5c0f\u738b\u5b50"\n user.Age = 18\n fmt.Printf("%#v\\n", user)\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"\u521b\u5efa\u6307\u9488\u7c7b\u578b\u7ed3\u6784\u4f53",children:"\u521b\u5efa\u6307\u9488\u7c7b\u578b\u7ed3\u6784\u4f53"}),"\n",(0,r.jsxs)(e.p,{children:["\u6211\u4eec\u8fd8\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528",(0,r.jsx)(e.code,{children:"new"}),"\u5173\u952e\u5b57\u5bf9\u7ed3\u6784\u4f53\u8fdb\u884c\u5b9e\u4f8b\u5316\uff0c\u5f97\u5230\u7684\u662f\u7ed3\u6784\u4f53\u7684\u5730\u5740\u3002 \u683c\u5f0f\u5982\u4e0b\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'var p2 = new(person)\nfmt.Printf("%T\\n", p2) //*main.person\nfmt.Printf("p2=%#v\\n", p2) //p2=&main.person{name:"", city:"", age:0}\n'})}),"\n",(0,r.jsxs)(e.p,{children:["\u4ece\u6253\u5370\u7684\u7ed3\u679c\u4e2d\u6211\u4eec\u53ef\u4ee5\u770b\u51fa",(0,r.jsx)(e.code,{children:"p2"}),"\u662f\u4e00\u4e2a\u7ed3\u6784\u4f53\u6307\u9488\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["\u9700\u8981\u6ce8\u610f\u7684\u662f\u5728Go\u8bed\u8a00\u4e2d\u652f\u6301\u5bf9\u7ed3\u6784\u4f53\u6307\u9488\u76f4\u63a5\u4f7f\u7528",(0,r.jsx)(e.code,{children:"."}),"\u6765\u8bbf\u95ee\u7ed3\u6784\u4f53\u7684\u6210\u5458\u3002"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'var p2 = new(person)\np2.name = "\u5c0f\u738b\u5b50"\np2.age = 28\np2.city = "\u4e0a\u6d77"\nfmt.Printf("p2=%#v\\n", p2) //p2=&main.person{name:"\u5c0f\u738b\u5b50", city:"\u4e0a\u6d77", age:28}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"\u53d6\u7ed3\u6784\u4f53\u7684\u5730\u5740\u5b9e\u4f8b\u5316",children:"\u53d6\u7ed3\u6784\u4f53\u7684\u5730\u5740\u5b9e\u4f8b\u5316"}),"\n",(0,r.jsxs)(e.p,{children:["\u4f7f\u7528",(0,r.jsx)(e.code,{children:"&"}),"\u5bf9\u7ed3\u6784\u4f53\u8fdb\u884c\u53d6\u5730\u5740\u64cd\u4f5c\u76f8\u5f53\u4e8e\u5bf9\u8be5\u7ed3\u6784\u4f53\u7c7b\u578b\u8fdb\u884c\u4e86\u4e00\u6b21",(0,r.jsx)(e.code,{children:"new"}),"\u5b9e\u4f8b\u5316\u64cd\u4f5c\u3002"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'p3 := &person{}\nfmt.Printf("%T\\n", p3) //*main.person\nfmt.Printf("p3=%#v\\n", p3) //p3=&main.person{name:"", city:"", age:0}\np3.name = "\u4e03\u7c73"\np3.age = 30\np3.city = "\u6210\u90fd"\nfmt.Printf("p3=%#v\\n", p3) //p3=&main.person{name:"\u4e03\u7c73", city:"\u6210\u90fd", age:30}\n'})}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:'p3.name = "\u4e03\u7c73"'}),"\u5176\u5b9e\u5728\u5e95\u5c42\u662f",(0,r.jsx)(e.code,{children:'(*p3).name = "\u4e03\u7c73"'}),"\uff0c\u8fd9\u662fGo\u8bed\u8a00\u5e2e\u6211\u4eec\u5b9e\u73b0\u7684\u8bed\u6cd5\u7cd6\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u521d\u59cb\u5316",children:"\u7ed3\u6784\u4f53\u521d\u59cb\u5316"}),"\n",(0,r.jsx)(e.p,{children:"\u6ca1\u6709\u521d\u59cb\u5316\u7684\u7ed3\u6784\u4f53\uff0c\u5176\u6210\u5458\u53d8\u91cf\u90fd\u662f\u5bf9\u5e94\u5176\u7c7b\u578b\u7684\u96f6\u503c\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'type person struct {\n\tname string\n\tcity string\n\tage int8\n}\n\nfunc main() {\n\tvar p4 person\n\tfmt.Printf("p4=%#v\\n", p4) //p4=main.person{name:"", city:"", age:0}\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"\u4f7f\u7528\u952e\u503c\u5bf9\u521d\u59cb\u5316",children:"\u4f7f\u7528\u952e\u503c\u5bf9\u521d\u59cb\u5316"}),"\n",(0,r.jsx)(e.p,{children:"\u4f7f\u7528\u952e\u503c\u5bf9\u5bf9\u7ed3\u6784\u4f53\u8fdb\u884c\u521d\u59cb\u5316\u65f6\uff0c\u952e\u5bf9\u5e94\u7ed3\u6784\u4f53\u7684\u5b57\u6bb5\uff0c\u503c\u5bf9\u5e94\u8be5\u5b57\u6bb5\u7684\u521d\u59cb\u503c\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'p5 := person{\n\tname: "\u5c0f\u738b\u5b50",\n\tcity: "\u5317\u4eac",\n\tage: 18,\n}\nfmt.Printf("p5=%#v\\n", p5) //p5=main.person{name:"\u5c0f\u738b\u5b50", city:"\u5317\u4eac", age:18}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u4e5f\u53ef\u4ee5\u5bf9\u7ed3\u6784\u4f53\u6307\u9488\u8fdb\u884c\u952e\u503c\u5bf9\u521d\u59cb\u5316\uff0c\u4f8b\u5982\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'p6 := &person{\n\tname: "\u5c0f\u738b\u5b50",\n\tcity: "\u5317\u4eac",\n\tage: 18,\n}\nfmt.Printf("p6=%#v\\n", p6) //p6=&main.person{name:"\u5c0f\u738b\u5b50", city:"\u5317\u4eac", age:18}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u5f53\u67d0\u4e9b\u5b57\u6bb5\u6ca1\u6709\u521d\u59cb\u503c\u7684\u65f6\u5019\uff0c\u8be5\u5b57\u6bb5\u53ef\u4ee5\u4e0d\u5199\u3002\u6b64\u65f6\uff0c\u6ca1\u6709\u6307\u5b9a\u521d\u59cb\u503c\u7684\u5b57\u6bb5\u7684\u503c\u5c31\u662f\u8be5\u5b57\u6bb5\u7c7b\u578b\u7684\u96f6\u503c\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'p7 := &person{\n\tcity: "\u5317\u4eac",\n}\nfmt.Printf("p7=%#v\\n", p7) //p7=&main.person{name:"", city:"\u5317\u4eac", age:0}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"\u4f7f\u7528\u503c\u7684\u5217\u8868\u521d\u59cb\u5316",children:"\u4f7f\u7528\u503c\u7684\u5217\u8868\u521d\u59cb\u5316"}),"\n",(0,r.jsx)(e.p,{children:"\u521d\u59cb\u5316\u7ed3\u6784\u4f53\u7684\u65f6\u5019\u53ef\u4ee5\u7b80\u5199\uff0c\u4e5f\u5c31\u662f\u521d\u59cb\u5316\u7684\u65f6\u5019\u4e0d\u5199\u952e\uff0c\u76f4\u63a5\u5199\u503c\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'p8 := &person{\n\t"\u6c99\u6cb3\u5a1c\u624e",\n\t"\u5317\u4eac",\n\t28,\n}\nfmt.Printf("p8=%#v\\n", p8) //p8=&main.person{name:"\u6c99\u6cb3\u5a1c\u624e", city:"\u5317\u4eac", age:28}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u4f7f\u7528\u8fd9\u79cd\u683c\u5f0f\u521d\u59cb\u5316\u65f6\uff0c\u9700\u8981\u6ce8\u610f\uff1a"}),"\n",(0,r.jsxs)(e.ol,{children:["\n",(0,r.jsx)(e.li,{children:"\u5fc5\u987b\u521d\u59cb\u5316\u7ed3\u6784\u4f53\u7684\u6240\u6709\u5b57\u6bb5\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u521d\u59cb\u503c\u7684\u586b\u5145\u987a\u5e8f\u5fc5\u987b\u4e0e\u5b57\u6bb5\u5728\u7ed3\u6784\u4f53\u4e2d\u7684\u58f0\u660e\u987a\u5e8f\u4e00\u81f4\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u8be5\u65b9\u5f0f\u4e0d\u80fd\u548c\u952e\u503c\u521d\u59cb\u5316\u65b9\u5f0f\u6df7\u7528\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u5185\u5b58\u5e03\u5c40",children:"\u7ed3\u6784\u4f53\u5185\u5b58\u5e03\u5c40"}),"\n",(0,r.jsx)(e.p,{children:"\u7ed3\u6784\u4f53\u5360\u7528\u4e00\u5757\u8fde\u7eed\u7684\u5185\u5b58\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'type test struct {\n\ta int8\n\tb int8\n\tc int8\n\td int8\n}\nn := test{\n\t1, 2, 3, 4,\n}\nfmt.Printf("n.a %p\\n", &n.a)\nfmt.Printf("n.b %p\\n", &n.b)\nfmt.Printf("n.c %p\\n", &n.c)\nfmt.Printf("n.d %p\\n", &n.d)\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u8f93\u51fa\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-bash",children:"n.a 0xc0000a0060\nn.b 0xc0000a0061\nn.c 0xc0000a0062\nn.d 0xc0000a0063\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u3010\u8fdb\u9636\u77e5\u8bc6\u70b9\u3011\u5173\u4e8eGo\u8bed\u8a00\u4e2d\u7684\u5185\u5b58\u5bf9\u9f50\u63a8\u8350\u9605\u8bfb:",(0,r.jsx)(e.a,{href:"https://www.liwenzhou.com/posts/Go/struct-memory-layout/",children:"Go\u7ed3\u6784\u4f53\u7684\u5185\u5b58\u5bf9\u9f50"})]}),"\n",(0,r.jsx)(e.h4,{id:"\u7a7a\u7ed3\u6784\u4f53",children:"\u7a7a\u7ed3\u6784\u4f53"}),"\n",(0,r.jsx)(e.p,{children:"\u7a7a\u7ed3\u6784\u4f53\u662f\u4e0d\u5360\u7528\u7a7a\u95f4\u7684\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"var v struct{}\nfmt.Println(unsafe.Sizeof(v)) // 0\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u9762\u8bd5\u9898",children:"\u9762\u8bd5\u9898"}),"\n",(0,r.jsx)(e.p,{children:"\u8bf7\u95ee\u4e0b\u9762\u4ee3\u7801\u7684\u6267\u884c\u7ed3\u679c\u662f\u4ec0\u4e48\uff1f"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'type student struct {\n\tname string\n\tage int\n}\n\nfunc main() {\n\tm := make(map[string]*student)\n\tstus := []student{\n\t\t{name: "\u5c0f\u738b\u5b50", age: 18},\n\t\t{name: "\u5a1c\u624e", age: 23},\n\t\t{name: "\u5927\u738b\u516b", age: 9000},\n\t}\n\n\tfor _, stu := range stus {\n\t\tm[stu.name] = &stu\n\t}\n\tfor k, v := range m {\n\t\tfmt.Println(k, "=>", v.name)\n\t}\n}\n'})}),"\n",(0,r.jsx)(e.h3,{id:"\u6784\u9020\u51fd\u6570",children:"\u6784\u9020\u51fd\u6570"}),"\n",(0,r.jsxs)(e.p,{children:["Go\u8bed\u8a00\u7684\u7ed3\u6784\u4f53\u6ca1\u6709\u6784\u9020\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u81ea\u5df1\u5b9e\u73b0\u3002 \u4f8b\u5982\uff0c\u4e0b\u65b9\u7684\u4ee3\u7801\u5c31\u5b9e\u73b0\u4e86\u4e00\u4e2a",(0,r.jsx)(e.code,{children:"person"}),"\u7684\u6784\u9020\u51fd\u6570\u3002 \u56e0\u4e3a",(0,r.jsx)(e.code,{children:"struct"}),"\u662f\u503c\u7c7b\u578b\uff0c\u5982\u679c\u7ed3\u6784\u4f53\u6bd4\u8f83\u590d\u6742\u7684\u8bdd\uff0c\u503c\u62f7\u8d1d\u6027\u80fd\u5f00\u9500\u4f1a\u6bd4\u8f83\u5927\uff0c\u6240\u4ee5\u8be5\u6784\u9020\u51fd\u6570\u8fd4\u56de\u7684\u662f\u7ed3\u6784\u4f53\u6307\u9488\u7c7b\u578b\u3002"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"func newPerson(name, city string, age int8) *person {\n\treturn &person{\n\t\tname: name,\n\t\tcity: city,\n\t\tage: age,\n\t}\n}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u8c03\u7528\u6784\u9020\u51fd\u6570"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'p9 := newPerson("\u5f20\u4e09", "\u6c99\u6cb3", 90)\nfmt.Printf("%#v\\n", p9) //&main.person{name:"\u5f20\u4e09", city:"\u6c99\u6cb3", age:90}\n'})}),"\n",(0,r.jsx)(e.h3,{id:"\u65b9\u6cd5\u548c\u63a5\u6536\u8005",children:"\u65b9\u6cd5\u548c\u63a5\u6536\u8005"}),"\n",(0,r.jsxs)(e.p,{children:["Go\u8bed\u8a00\u4e2d\u7684",(0,r.jsx)(e.code,{children:"\u65b9\u6cd5\uff08Method\uff09"}),"\u662f\u4e00\u79cd\u4f5c\u7528\u4e8e\u7279\u5b9a\u7c7b\u578b\u53d8\u91cf\u7684\u51fd\u6570\u3002\u8fd9\u79cd\u7279\u5b9a\u7c7b\u578b\u53d8\u91cf\u53eb\u505a",(0,r.jsx)(e.code,{children:"\u63a5\u6536\u8005\uff08Receiver\uff09"}),"\u3002\u63a5\u6536\u8005\u7684\u6982\u5ff5\u5c31\u7c7b\u4f3c\u4e8e\u5176\u4ed6\u8bed\u8a00\u4e2d\u7684",(0,r.jsx)(e.code,{children:"this"}),"\u6216\u8005 ",(0,r.jsx)(e.code,{children:"self"}),"\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"\u65b9\u6cd5\u7684\u5b9a\u4e49\u683c\u5f0f\u5982\u4e0b\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"func (\u63a5\u6536\u8005\u53d8\u91cf \u63a5\u6536\u8005\u7c7b\u578b) \u65b9\u6cd5\u540d(\u53c2\u6570\u5217\u8868) (\u8fd4\u56de\u53c2\u6570) {\n \u51fd\u6570\u4f53\n}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u5176\u4e2d\uff0c"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u63a5\u6536\u8005\u53d8\u91cf\uff1a\u63a5\u6536\u8005\u4e2d\u7684\u53c2\u6570\u53d8\u91cf\u540d\u5728\u547d\u540d\u65f6\uff0c\u5b98\u65b9\u5efa\u8bae\u4f7f\u7528\u63a5\u6536\u8005\u7c7b\u578b\u540d\u79f0\u9996\u5b57\u6bcd\u7684\u5c0f\u5199\uff0c\u800c\u4e0d\u662f",(0,r.jsx)(e.code,{children:"self"}),"\u3001",(0,r.jsx)(e.code,{children:"this"}),"\u4e4b\u7c7b\u7684\u547d\u540d\u3002\u4f8b\u5982\uff0c",(0,r.jsx)(e.code,{children:"Person"}),"\u7c7b\u578b\u7684\u63a5\u6536\u8005\u53d8\u91cf\u5e94\u8be5\u547d\u540d\u4e3a ",(0,r.jsx)(e.code,{children:"p"}),"\uff0c",(0,r.jsx)(e.code,{children:"Connector"}),"\u7c7b\u578b\u7684\u63a5\u6536\u8005\u53d8\u91cf\u5e94\u8be5\u547d\u540d\u4e3a",(0,r.jsx)(e.code,{children:"c"}),"\u7b49\u3002"]}),"\n",(0,r.jsx)(e.li,{children:"\u63a5\u6536\u8005\u7c7b\u578b\uff1a\u63a5\u6536\u8005\u7c7b\u578b\u548c\u53c2\u6570\u7c7b\u4f3c\uff0c\u53ef\u4ee5\u662f\u6307\u9488\u7c7b\u578b\u548c\u975e\u6307\u9488\u7c7b\u578b\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u65b9\u6cd5\u540d\u3001\u53c2\u6570\u5217\u8868\u3001\u8fd4\u56de\u53c2\u6570\uff1a\u5177\u4f53\u683c\u5f0f\u4e0e\u51fd\u6570\u5b9a\u4e49\u76f8\u540c\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u4e3e\u4e2a\u4f8b\u5b50\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//Person \u7ed3\u6784\u4f53\ntype Person struct {\n\tname string\n\tage int8\n}\n\n//NewPerson \u6784\u9020\u51fd\u6570\nfunc NewPerson(name string, age int8) *Person {\n\treturn &Person{\n\t\tname: name,\n\t\tage: age,\n\t}\n}\n\n//Dream Person\u505a\u68a6\u7684\u65b9\u6cd5\nfunc (p Person) Dream() {\n\tfmt.Printf("%s\u7684\u68a6\u60f3\u662f\u5b66\u597dGo\u8bed\u8a00\uff01\\n", p.name)\n}\n\nfunc main() {\n\tp1 := NewPerson("\u5c0f\u738b\u5b50", 25)\n\tp1.Dream()\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u65b9\u6cd5\u4e0e\u51fd\u6570\u7684\u533a\u522b\u662f\uff0c\u51fd\u6570\u4e0d\u5c5e\u4e8e\u4efb\u4f55\u7c7b\u578b\uff0c\u65b9\u6cd5\u5c5e\u4e8e\u7279\u5b9a\u7684\u7c7b\u578b\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"\u6307\u9488\u7c7b\u578b\u7684\u63a5\u6536\u8005",children:"\u6307\u9488\u7c7b\u578b\u7684\u63a5\u6536\u8005"}),"\n",(0,r.jsxs)(e.p,{children:["\u6307\u9488\u7c7b\u578b\u7684\u63a5\u6536\u8005\u7531\u4e00\u4e2a\u7ed3\u6784\u4f53\u7684\u6307\u9488\u7ec4\u6210\uff0c\u7531\u4e8e\u6307\u9488\u7684\u7279\u6027\uff0c\u8c03\u7528\u65b9\u6cd5\u65f6\u4fee\u6539\u63a5\u6536\u8005\u6307\u9488\u7684\u4efb\u610f\u6210\u5458\u53d8\u91cf\uff0c\u5728\u65b9\u6cd5\u7ed3\u675f\u540e\uff0c\u4fee\u6539\u90fd\u662f\u6709\u6548\u7684\u3002\u8fd9\u79cd\u65b9\u5f0f\u5c31\u5341\u5206\u63a5\u8fd1\u4e8e\u5176\u4ed6\u8bed\u8a00\u4e2d\u9762\u5411\u5bf9\u8c61\u4e2d\u7684",(0,r.jsx)(e.code,{children:"this"}),"\u6216\u8005",(0,r.jsx)(e.code,{children:"self"}),"\u3002 \u4f8b\u5982\u6211\u4eec\u4e3a",(0,r.jsx)(e.code,{children:"Person"}),"\u6dfb\u52a0\u4e00\u4e2a",(0,r.jsx)(e.code,{children:"SetAge"}),"\u65b9\u6cd5\uff0c\u6765\u4fee\u6539\u5b9e\u4f8b\u53d8\u91cf\u7684\u5e74\u9f84\u3002"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"// SetAge \u8bbe\u7f6ep\u7684\u5e74\u9f84\n// \u4f7f\u7528\u6307\u9488\u63a5\u6536\u8005\nfunc (p *Person) SetAge(newAge int8) {\n\tp.age = newAge\n}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u8c03\u7528\u8be5\u65b9\u6cd5\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'func main() {\n\tp1 := NewPerson("\u5c0f\u738b\u5b50", 25)\n\tfmt.Println(p1.age) // 25\n\tp1.SetAge(30)\n\tfmt.Println(p1.age) // 30\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"\u503c\u7c7b\u578b\u7684\u63a5\u6536\u8005",children:"\u503c\u7c7b\u578b\u7684\u63a5\u6536\u8005"}),"\n",(0,r.jsx)(e.p,{children:"\u5f53\u65b9\u6cd5\u4f5c\u7528\u4e8e\u503c\u7c7b\u578b\u63a5\u6536\u8005\u65f6\uff0cGo\u8bed\u8a00\u4f1a\u5728\u4ee3\u7801\u8fd0\u884c\u65f6\u5c06\u63a5\u6536\u8005\u7684\u503c\u590d\u5236\u4e00\u4efd\u3002\u5728\u503c\u7c7b\u578b\u63a5\u6536\u8005\u7684\u65b9\u6cd5\u4e2d\u53ef\u4ee5\u83b7\u53d6\u63a5\u6536\u8005\u7684\u6210\u5458\u503c\uff0c\u4f46\u4fee\u6539\u64cd\u4f5c\u53ea\u662f\u9488\u5bf9\u526f\u672c\uff0c\u65e0\u6cd5\u4fee\u6539\u63a5\u6536\u8005\u53d8\u91cf\u672c\u8eab\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'// SetAge2 \u8bbe\u7f6ep\u7684\u5e74\u9f84\n// \u4f7f\u7528\u503c\u63a5\u6536\u8005\nfunc (p Person) SetAge2(newAge int8) {\n\tp.age = newAge\n}\n\nfunc main() {\n\tp1 := NewPerson("\u5c0f\u738b\u5b50", 25)\n\tp1.Dream()\n\tfmt.Println(p1.age) // 25\n\tp1.SetAge2(30) // (*p1).SetAge2(30)\n\tfmt.Println(p1.age) // 25\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"\u4ec0\u4e48\u65f6\u5019\u5e94\u8be5\u4f7f\u7528\u6307\u9488\u7c7b\u578b\u63a5\u6536\u8005",children:"\u4ec0\u4e48\u65f6\u5019\u5e94\u8be5\u4f7f\u7528\u6307\u9488\u7c7b\u578b\u63a5\u6536\u8005"}),"\n",(0,r.jsxs)(e.ol,{children:["\n",(0,r.jsx)(e.li,{children:"\u9700\u8981\u4fee\u6539\u63a5\u6536\u8005\u4e2d\u7684\u503c"}),"\n",(0,r.jsx)(e.li,{children:"\u63a5\u6536\u8005\u662f\u62f7\u8d1d\u4ee3\u4ef7\u6bd4\u8f83\u5927\u7684\u5927\u5bf9\u8c61"}),"\n",(0,r.jsx)(e.li,{children:"\u4fdd\u8bc1\u4e00\u81f4\u6027\uff0c\u5982\u679c\u6709\u67d0\u4e2a\u65b9\u6cd5\u4f7f\u7528\u4e86\u6307\u9488\u63a5\u6536\u8005\uff0c\u90a3\u4e48\u5176\u4ed6\u7684\u65b9\u6cd5\u4e5f\u5e94\u8be5\u4f7f\u7528\u6307\u9488\u63a5\u6536\u8005\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"\u4efb\u610f\u7c7b\u578b\u6dfb\u52a0\u65b9\u6cd5",children:"\u4efb\u610f\u7c7b\u578b\u6dfb\u52a0\u65b9\u6cd5"}),"\n",(0,r.jsxs)(e.p,{children:["\u5728Go\u8bed\u8a00\u4e2d\uff0c\u63a5\u6536\u8005\u7684\u7c7b\u578b\u53ef\u4ee5\u662f\u4efb\u4f55\u7c7b\u578b\uff0c\u4e0d\u4ec5\u4ec5\u662f\u7ed3\u6784\u4f53\uff0c\u4efb\u4f55\u7c7b\u578b\u90fd\u53ef\u4ee5\u62e5\u6709\u65b9\u6cd5\u3002 \u4e3e\u4e2a\u4f8b\u5b50\uff0c\u6211\u4eec\u57fa\u4e8e\u5185\u7f6e\u7684",(0,r.jsx)(e.code,{children:"int"}),"\u7c7b\u578b\u4f7f\u7528type\u5173\u952e\u5b57\u53ef\u4ee5\u5b9a\u4e49\u65b0\u7684\u81ea\u5b9a\u4e49\u7c7b\u578b\uff0c\u7136\u540e\u4e3a\u6211\u4eec\u7684\u81ea\u5b9a\u4e49\u7c7b\u578b\u6dfb\u52a0\u65b9\u6cd5\u3002"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//MyInt \u5c06int\u5b9a\u4e49\u4e3a\u81ea\u5b9a\u4e49MyInt\u7c7b\u578b\ntype MyInt int\n\n//SayHello \u4e3aMyInt\u6dfb\u52a0\u4e00\u4e2aSayHello\u7684\u65b9\u6cd5\nfunc (m MyInt) SayHello() {\n\tfmt.Println("Hello, \u6211\u662f\u4e00\u4e2aint\u3002")\n}\nfunc main() {\n\tvar m1 MyInt\n\tm1.SayHello() //Hello, \u6211\u662f\u4e00\u4e2aint\u3002\n\tm1 = 100\n\tfmt.Printf("%#v %T\\n", m1, m1) //100 main.MyInt\n}\n'})}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"\u6ce8\u610f\u4e8b\u9879\uff1a"})," \u975e\u672c\u5730\u7c7b\u578b\u4e0d\u80fd\u5b9a\u4e49\u65b9\u6cd5\uff0c\u4e5f\u5c31\u662f\u8bf4\u6211\u4eec\u4e0d\u80fd\u7ed9\u522b\u7684\u5305\u7684\u7c7b\u578b\u5b9a\u4e49\u65b9\u6cd5\u3002"]}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u7684\u533f\u540d\u5b57\u6bb5",children:"\u7ed3\u6784\u4f53\u7684\u533f\u540d\u5b57\u6bb5"}),"\n",(0,r.jsx)(e.p,{children:"\u7ed3\u6784\u4f53\u5141\u8bb8\u5176\u6210\u5458\u5b57\u6bb5\u5728\u58f0\u660e\u65f6\u6ca1\u6709\u5b57\u6bb5\u540d\u800c\u53ea\u6709\u7c7b\u578b\uff0c\u8fd9\u79cd\u6ca1\u6709\u540d\u5b57\u7684\u5b57\u6bb5\u5c31\u79f0\u4e3a\u533f\u540d\u5b57\u6bb5\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//Person \u7ed3\u6784\u4f53Person\u7c7b\u578b\ntype Person struct {\n\tstring\n\tint\n}\n\nfunc main() {\n\tp1 := Person{\n\t\t"\u5c0f\u738b\u5b50",\n\t\t18,\n\t}\n\tfmt.Printf("%#v\\n", p1) //main.Person{string:"\u5317\u4eac", int:18}\n\tfmt.Println(p1.string, p1.int) //\u5317\u4eac 18\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:"**\u6ce8\u610f\uff1a**\u8fd9\u91cc\u533f\u540d\u5b57\u6bb5\u7684\u8bf4\u6cd5\u5e76\u4e0d\u4ee3\u8868\u6ca1\u6709\u5b57\u6bb5\u540d\uff0c\u800c\u662f\u9ed8\u8ba4\u4f1a\u91c7\u7528\u7c7b\u578b\u540d\u4f5c\u4e3a\u5b57\u6bb5\u540d\uff0c\u7ed3\u6784\u4f53\u8981\u6c42\u5b57\u6bb5\u540d\u79f0\u5fc5\u987b\u552f\u4e00\uff0c\u56e0\u6b64\u4e00\u4e2a\u7ed3\u6784\u4f53\u4e2d\u540c\u79cd\u7c7b\u578b\u7684\u533f\u540d\u5b57\u6bb5\u53ea\u80fd\u6709\u4e00\u4e2a\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"\u5d4c\u5957\u7ed3\u6784\u4f53",children:"\u5d4c\u5957\u7ed3\u6784\u4f53"}),"\n",(0,r.jsx)(e.p,{children:"\u4e00\u4e2a\u7ed3\u6784\u4f53\u4e2d\u53ef\u4ee5\u5d4c\u5957\u5305\u542b\u53e6\u4e00\u4e2a\u7ed3\u6784\u4f53\u6216\u7ed3\u6784\u4f53\u6307\u9488\uff0c\u5c31\u50cf\u4e0b\u9762\u7684\u793a\u4f8b\u4ee3\u7801\u90a3\u6837\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//Address \u5730\u5740\u7ed3\u6784\u4f53\ntype Address struct {\n\tProvince string\n\tCity string\n}\n\n//User \u7528\u6237\u7ed3\u6784\u4f53\ntype User struct {\n\tName string\n\tGender string\n\tAddress Address\n}\n\nfunc main() {\n\tuser1 := User{\n\t\tName: "\u5c0f\u738b\u5b50",\n\t\tGender: "\u7537",\n\t\tAddress: Address{\n\t\t\tProvince: "\u5c71\u4e1c",\n\t\t\tCity: "\u5a01\u6d77",\n\t\t},\n\t}\n\tfmt.Printf("user1=%#v\\n", user1)//user1=main.User{Name:"\u5c0f\u738b\u5b50", Gender:"\u7537", Address:main.Address{Province:"\u5c71\u4e1c", City:"\u5a01\u6d77"}}\n}\n'})}),"\n",(0,r.jsx)(e.h4,{id:"\u5d4c\u5957\u533f\u540d\u5b57\u6bb5",children:"\u5d4c\u5957\u533f\u540d\u5b57\u6bb5"}),"\n",(0,r.jsxs)(e.p,{children:["\u4e0a\u9762user\u7ed3\u6784\u4f53\u4e2d\u5d4c\u5957\u7684",(0,r.jsx)(e.code,{children:"Address"}),"\u7ed3\u6784\u4f53\u4e5f\u53ef\u4ee5\u91c7\u7528\u533f\u540d\u5b57\u6bb5\u7684\u65b9\u5f0f\uff0c\u4f8b\u5982\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//Address \u5730\u5740\u7ed3\u6784\u4f53\ntype Address struct {\n\tProvince string\n\tCity string\n}\n\n//User \u7528\u6237\u7ed3\u6784\u4f53\ntype User struct {\n\tName string\n\tGender string\n\tAddress //\u533f\u540d\u5b57\u6bb5\n}\n\nfunc main() {\n\tvar user2 User\n\tuser2.Name = "\u5c0f\u738b\u5b50"\n\tuser2.Gender = "\u7537"\n\tuser2.Address.Province = "\u5c71\u4e1c" // \u533f\u540d\u5b57\u6bb5\u9ed8\u8ba4\u4f7f\u7528\u7c7b\u578b\u540d\u4f5c\u4e3a\u5b57\u6bb5\u540d\n\tuser2.City = "\u5a01\u6d77" // \u533f\u540d\u5b57\u6bb5\u53ef\u4ee5\u7701\u7565\n\tfmt.Printf("user2=%#v\\n", user2) //user2=main.User{Name:"\u5c0f\u738b\u5b50", Gender:"\u7537", Address:main.Address{Province:"\u5c71\u4e1c", City:"\u5a01\u6d77"}}\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u5f53\u8bbf\u95ee\u7ed3\u6784\u4f53\u6210\u5458\u65f6\u4f1a\u5148\u5728\u7ed3\u6784\u4f53\u4e2d\u67e5\u627e\u8be5\u5b57\u6bb5\uff0c\u627e\u4e0d\u5230\u518d\u53bb\u5d4c\u5957\u7684\u533f\u540d\u5b57\u6bb5\u4e2d\u67e5\u627e\u3002"}),"\n",(0,r.jsx)(e.h4,{id:"\u5d4c\u5957\u7ed3\u6784\u4f53\u7684\u5b57\u6bb5\u540d\u51b2\u7a81",children:"\u5d4c\u5957\u7ed3\u6784\u4f53\u7684\u5b57\u6bb5\u540d\u51b2\u7a81"}),"\n",(0,r.jsx)(e.p,{children:"\u5d4c\u5957\u7ed3\u6784\u4f53\u5185\u90e8\u53ef\u80fd\u5b58\u5728\u76f8\u540c\u7684\u5b57\u6bb5\u540d\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u4e3a\u4e86\u907f\u514d\u6b67\u4e49\u9700\u8981\u901a\u8fc7\u6307\u5b9a\u5177\u4f53\u7684\u5185\u5d4c\u7ed3\u6784\u4f53\u5b57\u6bb5\u540d\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//Address \u5730\u5740\u7ed3\u6784\u4f53\ntype Address struct {\n\tProvince string\n\tCity string\n\tCreateTime string\n}\n\n//Email \u90ae\u7bb1\u7ed3\u6784\u4f53\ntype Email struct {\n\tAccount string\n\tCreateTime string\n}\n\n//User \u7528\u6237\u7ed3\u6784\u4f53\ntype User struct {\n\tName string\n\tGender string\n\tAddress\n\tEmail\n}\n\nfunc main() {\n\tvar user3 User\n\tuser3.Name = "\u6c99\u6cb3\u5a1c\u624e"\n\tuser3.Gender = "\u7537"\n\t// user3.CreateTime = "2019" //ambiguous selector user3.CreateTime\n\tuser3.Address.CreateTime = "2000" //\u6307\u5b9aAddress\u7ed3\u6784\u4f53\u4e2d\u7684CreateTime\n\tuser3.Email.CreateTime = "2000" //\u6307\u5b9aEmail\u7ed3\u6784\u4f53\u4e2d\u7684CreateTime\n}\n'})}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u7684\u7ee7\u627f",children:"\u7ed3\u6784\u4f53\u7684\u201c\u7ee7\u627f\u201d"}),"\n",(0,r.jsx)(e.p,{children:"Go\u8bed\u8a00\u4e2d\u4f7f\u7528\u7ed3\u6784\u4f53\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u5176\u4ed6\u7f16\u7a0b\u8bed\u8a00\u4e2d\u9762\u5411\u5bf9\u8c61\u7684\u7ee7\u627f\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//Animal \u52a8\u7269\ntype Animal struct {\n\tname string\n}\n\nfunc (a *Animal) move() {\n\tfmt.Printf("%s\u4f1a\u52a8\uff01\\n", a.name)\n}\n\n//Dog \u72d7\ntype Dog struct {\n\tFeet int8\n\t*Animal //\u901a\u8fc7\u5d4c\u5957\u533f\u540d\u7ed3\u6784\u4f53\u5b9e\u73b0\u7ee7\u627f\n}\n\nfunc (d *Dog) wang() {\n\tfmt.Printf("%s\u4f1a\u6c6a\u6c6a\u6c6a~\\n", d.name)\n}\n\nfunc main() {\n\td1 := &Dog{\n\t\tFeet: 4,\n\t\tAnimal: &Animal{ //\u6ce8\u610f\u5d4c\u5957\u7684\u662f\u7ed3\u6784\u4f53\u6307\u9488\n\t\t\tname: "\u4e50\u4e50",\n\t\t},\n\t}\n\td1.wang() //\u4e50\u4e50\u4f1a\u6c6a\u6c6a\u6c6a~\n\td1.move() //\u4e50\u4e50\u4f1a\u52a8\uff01\n}\n'})}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u5b57\u6bb5\u7684\u53ef\u89c1\u6027",children:"\u7ed3\u6784\u4f53\u5b57\u6bb5\u7684\u53ef\u89c1\u6027"}),"\n",(0,r.jsx)(e.p,{children:"\u7ed3\u6784\u4f53\u4e2d\u5b57\u6bb5\u5927\u5199\u5f00\u5934\u8868\u793a\u53ef\u516c\u5f00\u8bbf\u95ee\uff0c\u5c0f\u5199\u8868\u793a\u79c1\u6709\uff08\u4ec5\u5728\u5b9a\u4e49\u5f53\u524d\u7ed3\u6784\u4f53\u7684\u5305\u4e2d\u53ef\u8bbf\u95ee\uff09\u3002"}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u4e0ejson\u5e8f\u5217\u5316",children:"\u7ed3\u6784\u4f53\u4e0eJSON\u5e8f\u5217\u5316"}),"\n",(0,r.jsxs)(e.p,{children:["JSON(JavaScript Object Notation) \u662f\u4e00\u79cd\u8f7b\u91cf\u7ea7\u7684\u6570\u636e\u4ea4\u6362\u683c\u5f0f\u3002\u6613\u4e8e\u4eba\u9605\u8bfb\u548c\u7f16\u5199\u3002\u540c\u65f6\u4e5f\u6613\u4e8e\u673a\u5668\u89e3\u6790\u548c\u751f\u6210\u3002JSON\u952e\u503c\u5bf9\u662f\u7528\u6765\u4fdd\u5b58JS\u5bf9\u8c61\u7684\u4e00\u79cd\u65b9\u5f0f\uff0c\u952e/\u503c\u5bf9\u7ec4\u5408\u4e2d\u7684\u952e\u540d\u5199\u5728\u524d\u9762\u5e76\u7528\u53cc\u5f15\u53f7",(0,r.jsx)(e.code,{children:'""'}),"\u5305\u88f9\uff0c\u4f7f\u7528\u5192\u53f7",(0,r.jsx)(e.code,{children:":"}),"\u5206\u9694\uff0c\u7136\u540e\u7d27\u63a5\u7740\u503c\uff1b\u591a\u4e2a\u952e\u503c\u4e4b\u95f4\u4f7f\u7528\u82f1\u6587",(0,r.jsx)(e.code,{children:","}),"\u5206\u9694\u3002"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//Student \u5b66\u751f\ntype Student struct {\n\tID int\n\tGender string\n\tName string\n}\n\n//Class \u73ed\u7ea7\ntype Class struct {\n\tTitle string\n\tStudents []*Student\n}\n\nfunc main() {\n\tc := &Class{\n\t\tTitle: "101",\n\t\tStudents: make([]*Student, 0, 200),\n\t}\n\tfor i := 0; i < 10; i++ {\n\t\tstu := &Student{\n\t\t\tName: fmt.Sprintf("stu%02d", i),\n\t\t\tGender: "\u7537",\n\t\t\tID: i,\n\t\t}\n\t\tc.Students = append(c.Students, stu)\n\t}\n\t//JSON\u5e8f\u5217\u5316\uff1a\u7ed3\u6784\u4f53--\x3eJSON\u683c\u5f0f\u7684\u5b57\u7b26\u4e32\n\tdata, err := json.Marshal(c)\n\tif err != nil {\n\t\tfmt.Println("json marshal failed")\n\t\treturn\n\t}\n\tfmt.Printf("json:%s\\n", data)\n\t//JSON\u53cd\u5e8f\u5217\u5316\uff1aJSON\u683c\u5f0f\u7684\u5b57\u7b26\u4e32--\x3e\u7ed3\u6784\u4f53\n\tstr := `{"Title":"101","Students":[{"ID":0,"Gender":"\u7537","Name":"stu00"},{"ID":1,"Gender":"\u7537","Name":"stu01"},{"ID":2,"Gender":"\u7537","Name":"stu02"},{"ID":3,"Gender":"\u7537","Name":"stu03"},{"ID":4,"Gender":"\u7537","Name":"stu04"},{"ID":5,"Gender":"\u7537","Name":"stu05"},{"ID":6,"Gender":"\u7537","Name":"stu06"},{"ID":7,"Gender":"\u7537","Name":"stu07"},{"ID":8,"Gender":"\u7537","Name":"stu08"},{"ID":9,"Gender":"\u7537","Name":"stu09"}]}`\n\tc1 := &Class{}\n\terr = json.Unmarshal([]byte(str), c1)\n\tif err != nil {\n\t\tfmt.Println("json unmarshal failed!")\n\t\treturn\n\t}\n\tfmt.Printf("%#v\\n", c1)\n}\n'})}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u6807\u7b7etag",children:"\u7ed3\u6784\u4f53\u6807\u7b7e\uff08Tag\uff09"}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.code,{children:"Tag"}),"\u662f\u7ed3\u6784\u4f53\u7684\u5143\u4fe1\u606f\uff0c\u53ef\u4ee5\u5728\u8fd0\u884c\u7684\u65f6\u5019\u901a\u8fc7\u53cd\u5c04\u7684\u673a\u5236\u8bfb\u53d6\u51fa\u6765\u3002 ",(0,r.jsx)(e.code,{children:"Tag"}),"\u5728\u7ed3\u6784\u4f53\u5b57\u6bb5\u7684\u540e\u65b9\u5b9a\u4e49\uff0c\u7531\u4e00\u5bf9",(0,r.jsx)(e.strong,{children:"\u53cd\u5f15\u53f7"}),"\u5305\u88f9\u8d77\u6765\uff0c\u5177\u4f53\u7684\u683c\u5f0f\u5982\u4e0b\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-bash",children:'`key1:"value1" key2:"value2"`\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u7ed3\u6784\u4f53tag\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u952e\u503c\u5bf9\u7ec4\u6210\u3002\u952e\u4e0e\u503c\u4f7f\u7528\u5192\u53f7\u5206\u9694\uff0c\u503c\u7528\u53cc\u5f15\u53f7\u62ec\u8d77\u6765\u3002\u540c\u4e00\u4e2a\u7ed3\u6784\u4f53\u5b57\u6bb5\u53ef\u4ee5\u8bbe\u7f6e\u591a\u4e2a\u952e\u503c\u5bf9tag\uff0c\u4e0d\u540c\u7684\u952e\u503c\u5bf9\u4e4b\u95f4\u4f7f\u7528\u7a7a\u683c\u5206\u9694\u3002"}),"\n",(0,r.jsxs)(e.p,{children:[(0,r.jsx)(e.strong,{children:"\u6ce8\u610f\u4e8b\u9879\uff1a"})," \u4e3a\u7ed3\u6784\u4f53\u7f16\u5199",(0,r.jsx)(e.code,{children:"Tag"}),"\u65f6\uff0c\u5fc5\u987b\u4e25\u683c\u9075\u5b88\u952e\u503c\u5bf9\u7684\u89c4\u5219\u3002\u7ed3\u6784\u4f53\u6807\u7b7e\u7684\u89e3\u6790\u4ee3\u7801\u7684\u5bb9\u9519\u80fd\u529b\u5f88\u5dee\uff0c\u4e00\u65e6\u683c\u5f0f\u5199\u9519\uff0c\u7f16\u8bd1\u548c\u8fd0\u884c\u65f6\u90fd\u4e0d\u4f1a\u63d0\u793a\u4efb\u4f55\u9519\u8bef\uff0c\u901a\u8fc7\u53cd\u5c04\u4e5f\u65e0\u6cd5\u6b63\u786e\u53d6\u503c\u3002\u4f8b\u5982\u4e0d\u8981\u5728key\u548cvalue\u4e4b\u95f4\u6dfb\u52a0\u7a7a\u683c\u3002"]}),"\n",(0,r.jsxs)(e.p,{children:["\u4f8b\u5982\u6211\u4eec\u4e3a",(0,r.jsx)(e.code,{children:"Student"}),"\u7ed3\u6784\u4f53\u7684\u6bcf\u4e2a\u5b57\u6bb5\u5b9a\u4e49json\u5e8f\u5217\u5316\u65f6\u4f7f\u7528\u7684Tag\uff1a"]}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'//Student \u5b66\u751f\ntype Student struct {\n\tID int `json:"id"` //\u901a\u8fc7\u6307\u5b9atag\u5b9e\u73b0json\u5e8f\u5217\u5316\u8be5\u5b57\u6bb5\u65f6\u7684key\n\tGender string //json\u5e8f\u5217\u5316\u662f\u9ed8\u8ba4\u4f7f\u7528\u5b57\u6bb5\u540d\u4f5c\u4e3akey\n\tname string //\u79c1\u6709\u4e0d\u80fd\u88abjson\u5305\u8bbf\u95ee\n}\n\nfunc main() {\n\ts1 := Student{\n\t\tID: 1,\n\t\tGender: "\u7537",\n\t\tname: "\u6c99\u6cb3\u5a1c\u624e",\n\t}\n\tdata, err := json.Marshal(s1)\n\tif err != nil {\n\t\tfmt.Println("json marshal failed!")\n\t\treturn\n\t}\n\tfmt.Printf("json str:%s\\n", data) //json str:{"id":1,"Gender":"\u7537"}\n}\n'})}),"\n",(0,r.jsx)(e.h3,{id:"\u7ed3\u6784\u4f53\u548c\u65b9\u6cd5\u8865\u5145\u77e5\u8bc6\u70b9",children:"\u7ed3\u6784\u4f53\u548c\u65b9\u6cd5\u8865\u5145\u77e5\u8bc6\u70b9"}),"\n",(0,r.jsx)(e.p,{children:"\u56e0\u4e3aslice\u548cmap\u8fd9\u4e24\u79cd\u6570\u636e\u7c7b\u578b\u90fd\u5305\u542b\u4e86\u6307\u5411\u5e95\u5c42\u6570\u636e\u7684\u6307\u9488\uff0c\u56e0\u6b64\u6211\u4eec\u5728\u9700\u8981\u590d\u5236\u5b83\u4eec\u65f6\u8981\u7279\u522b\u6ce8\u610f\u3002\u6211\u4eec\u6765\u770b\u4e0b\u9762\u7684\u4f8b\u5b50\uff1a"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:'type Person struct {\n\tname string\n\tage int8\n\tdreams []string\n}\n\nfunc (p *Person) SetDreams(dreams []string) {\n\tp.dreams = dreams\n}\n\nfunc main() {\n\tp1 := Person{name: "\u5c0f\u738b\u5b50", age: 18}\n\tdata := []string{"\u5403\u996d", "\u7761\u89c9", "\u6253\u8c46\u8c46"}\n\tp1.SetDreams(data)\n\n\t// \u4f60\u771f\u7684\u60f3\u8981\u4fee\u6539 p1.dreams \u5417\uff1f\n\tdata[1] = "\u4e0d\u7761\u89c9"\n\tfmt.Println(p1.dreams) // ?\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u6b63\u786e\u7684\u505a\u6cd5\u662f\u5728\u65b9\u6cd5\u4e2d\u4f7f\u7528\u4f20\u5165\u7684slice\u7684\u62f7\u8d1d\u8fdb\u884c\u7ed3\u6784\u4f53\u8d4b\u503c\u3002"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-go",children:"func (p *Person) SetDreams(dreams []string) {\n\tp.dreams = make([]string, len(dreams))\n\tcopy(p.dreams, dreams)\n}\n"})}),"\n",(0,r.jsx)(e.p,{children:"\u540c\u6837\u7684\u95ee\u9898\u4e5f\u5b58\u5728\u4e8e\u8fd4\u56de\u503cslice\u548cmap\u7684\u60c5\u51b5\uff0c\u5728\u5b9e\u9645\u7f16\u7801\u8fc7\u7a0b\u4e2d\u4e00\u5b9a\u8981\u6ce8\u610f\u8fd9\u4e2a\u95ee\u9898\u3002"})]})}function h(n={}){const{wrapper:e}={...(0,i.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(o,{...n})}):o(n)}}}]);