[{"data":1,"prerenderedAt":590},["ShallowReactive",2],{"navigation":3,"-design-built-in-structs-and-runtime-types":239,"-design-built-in-structs-and-runtime-types-surround":587},[4,159],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"指南","\u002Fguide","00.guide\u002F00.index",[9,11,16,21,53,84,116,142],{"title":5,"path":6,"stem":7,"icon":10},"lucide:book",{"title":12,"path":13,"stem":14,"icon":15},"快速开始","\u002Fguide\u002Fgetting-started","00.guide\u002F01.getting-started","lucide:rocket",{"title":17,"path":18,"stem":19,"icon":20},"基础语法","\u002Fguide\u002Fbasic-syntax","00.guide\u002F02.basic-syntax","lucide:code-2",{"title":22,"path":23,"stem":24,"children":25,"icon":27},"数据类型","\u002Fguide\u002Fdata-types","00.guide\u002F03.data-types\u002F00.index",[26,28,33,38,43,48],{"title":22,"path":23,"stem":24,"icon":27},"lucide:database",{"title":29,"path":30,"stem":31,"icon":32},"基本类型","\u002Fguide\u002Fdata-types\u002Fbasic_types","00.guide\u002F03.data-types\u002F01.basic_types","lucide:type",{"title":34,"path":35,"stem":36,"icon":37},"复合类型","\u002Fguide\u002Fdata-types\u002Fcomposite_types","00.guide\u002F03.data-types\u002F02.composite_types","lucide:layers",{"title":39,"path":40,"stem":41,"icon":42},"类型推导","\u002Fguide\u002Fdata-types\u002Ftype_inference","00.guide\u002F03.data-types\u002F03.type_inference","lucide:brain-circuit",{"title":44,"path":45,"stem":46,"icon":47},"结构体","\u002Fguide\u002Fdata-types\u002Fstruct","00.guide\u002F03.data-types\u002F04.struct","lucide:box-select",{"title":49,"path":50,"stem":51,"icon":52},"内建类型表面","\u002Fguide\u002Fdata-types\u002Fbuilt-in-surface","00.guide\u002F03.data-types\u002F05.built-in-surface","lucide:wrench",{"title":54,"path":55,"stem":56,"children":57,"icon":59},"流程控制","\u002Fguide\u002Fcontrol-flow","00.guide\u002F04.control-flow\u002F00.index",[58,60,64,69,74,79],{"title":54,"path":55,"stem":56,"icon":59},"lucide:git-branch",{"title":61,"path":62,"stem":63,"icon":59},"if 表达式","\u002Fguide\u002Fcontrol-flow\u002Fif-expressions","00.guide\u002F04.control-flow\u002F01.if-expressions",{"title":65,"path":66,"stem":67,"icon":68},"for 循环","\u002Fguide\u002Fcontrol-flow\u002Ffor-loops","00.guide\u002F04.control-flow\u002F02.for-loops","lucide:repeat",{"title":70,"path":71,"stem":72,"icon":73},"break 和 continue","\u002Fguide\u002Fcontrol-flow\u002Fbreak-continue","00.guide\u002F04.control-flow\u002F03.break-continue","lucide:skip-forward",{"title":75,"path":76,"stem":77,"icon":78},"return","\u002Fguide\u002Fcontrol-flow\u002Freturn","00.guide\u002F04.control-flow\u002F04.return","lucide:corner-up-left",{"title":80,"path":81,"stem":82,"icon":83},"注意事项","\u002Fguide\u002Fcontrol-flow\u002Fnotes","00.guide\u002F04.control-flow\u002F05.notes","lucide:alert-triangle",{"title":85,"path":86,"stem":87,"children":88,"icon":90},"函数","\u002Fguide\u002Ffunctions","00.guide\u002F05.functions\u002F00.index",[89,91,96,101,106,111],{"title":85,"path":86,"stem":87,"icon":90},"lucide:braces",{"title":92,"path":93,"stem":94,"icon":95},"基础函数","\u002Fguide\u002Ffunctions\u002Fbasic-functions","00.guide\u002F05.functions\u002F01.basic-functions","lucide:function-square",{"title":97,"path":98,"stem":99,"icon":100},"参数与默认值","\u002Fguide\u002Ffunctions\u002Fadvanced-parameters","00.guide\u002F05.functions\u002F02.advanced-parameters","lucide:settings-2",{"title":102,"path":103,"stem":104,"icon":105},"匿名函数","\u002Fguide\u002Ffunctions\u002Fclosures","00.guide\u002F05.functions\u002F03.closures","lucide:curly-braces",{"title":107,"path":108,"stem":109,"icon":110},"内建函数","\u002Fguide\u002Ffunctions\u002Fbuiltin-functions","00.guide\u002F05.functions\u002F04.builtin-functions","lucide:box",{"title":112,"path":113,"stem":114,"icon":115},"main 函数","\u002Fguide\u002Ffunctions\u002Fmain-function","00.guide\u002F05.functions\u002F05.main-function","lucide:play",{"title":117,"path":118,"stem":119,"children":120,"icon":37},"模块化","\u002Fguide\u002Fmodules","00.guide\u002F06.modules\u002F00.index",[121,122,127,132,137],{"title":117,"path":118,"stem":119,"icon":37},{"title":123,"path":124,"stem":125,"icon":126},"导出","\u002Fguide\u002Fmodules\u002Fexport","00.guide\u002F06.modules\u002F01.export","lucide:upload",{"title":128,"path":129,"stem":130,"icon":131},"导入","\u002Fguide\u002Fmodules\u002Fimport","00.guide\u002F06.modules\u002F02.import","lucide:download",{"title":133,"path":134,"stem":135,"icon":136},"最佳实践","\u002Fguide\u002Fmodules\u002Fbest-practices","00.guide\u002F06.modules\u002F03.best-practices","lucide:check-circle-2",{"title":138,"path":139,"stem":140,"icon":141},"完整示例","\u002Fguide\u002Fmodules\u002Fcomplete-example","00.guide\u002F06.modules\u002F04.complete-example","lucide:file-code-2",{"title":143,"path":144,"stem":145,"children":146,"icon":148},"高级特性概述","\u002Fguide\u002Fadvanced","00.guide\u002F07.advanced\u002F00.index",[147,149,154],{"title":143,"path":144,"stem":145,"icon":148},"lucide:zap",{"title":150,"path":151,"stem":152,"icon":153},"泛型","\u002Fguide\u002Fadvanced\u002Fgenerics","00.guide\u002F07.advanced\u002F05.generics","lucide:git-merge",{"title":155,"path":156,"stem":157,"icon":158},"类型转换","\u002Fguide\u002Fadvanced\u002Ftype-conversion","00.guide\u002F07.advanced\u002F06.type-conversion","lucide:refresh-cw",{"title":160,"path":161,"stem":162,"children":163,"icon":15},"设计","\u002Fdesign","01.design\u002F00.index",[164,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,232,235],{"title":160,"path":161,"stem":162,"icon":15},{"title":166,"path":167,"stem":168},"CST 特性","\u002Fdesign\u002Fcst-features","01.design\u002F01.cst-features",{"title":170,"path":171,"stem":172},"注释关联规则","\u002Fdesign\u002Fcomment-association","01.design\u002F02.comment-association",{"title":174,"path":175,"stem":176},"错误处理","\u002Fdesign\u002Ferror-handling","01.design\u002F03.error-handling",{"title":178,"path":179,"stem":180},"代码优化","\u002Fdesign\u002Foptimization","01.design\u002F04.optimization",{"title":182,"path":183,"stem":184},"注释保留","\u002Fdesign\u002Fcomments","01.design\u002F05.comments",{"title":186,"path":187,"stem":188},"结构体设计","\u002Fdesign\u002Fstruct-design","01.design\u002F06.struct-design",{"title":190,"path":191,"stem":192},"comparable 约束设计","\u002Fdesign\u002Fcomparable-constraint","01.design\u002F07.comparable-constraint",{"title":194,"path":195,"stem":196},"文档分层约定","\u002Fdesign\u002Fdocumentation-convention","01.design\u002F08.documentation-convention",{"title":198,"path":199,"stem":200},"类型系统总纲","\u002Fdesign\u002Ftype-system","01.design\u002F09.type-system",{"title":202,"path":203,"stem":204},"泛型系统","\u002Fdesign\u002Fgenerics-system","01.design\u002F10.generics-system",{"title":206,"path":207,"stem":208},"值语义与共享语义","\u002Fdesign\u002Fvalue-and-sharing-semantics","01.design\u002F11.value-and-sharing-semantics",{"title":210,"path":211,"stem":212},"函数与调用","\u002Fdesign\u002Ffunctions-and-calls","01.design\u002F12.functions-and-calls",{"title":214,"path":215,"stem":216},"表达式与语句","\u002Fdesign\u002Fexpressions-and-statements","01.design\u002F13.expressions-and-statements",{"title":218,"path":219,"stem":220},"模块系统","\u002Fdesign\u002Fmodule-system","01.design\u002F14.module-system",{"title":222,"path":223,"stem":224},"渲染内建","\u002Fdesign\u002Frender-intrinsics","01.design\u002F15.render-intrinsics",{"title":226,"path":227,"stem":228},"Any 设计","\u002Fdesign\u002Fany-design","01.design\u002F16.any-design",{"title":49,"path":230,"stem":231},"\u002Fdesign\u002Fbuilt-in-types-surface","01.design\u002F17.built-in-types-surface",{"title":107,"path":233,"stem":234},"\u002Fdesign\u002Fbuilt-in-functions","01.design\u002F18.built-in-functions",{"title":236,"path":237,"stem":238},"内建结构体与运行时类型","\u002Fdesign\u002Fbuilt-in-structs-and-runtime-types","01.design\u002F19.built-in-structs-and-runtime-types",{"id":240,"title":236,"body":241,"description":568,"extension":582,"meta":583,"navigation":584,"path":237,"seo":585,"stem":238,"__hash__":586},"content\u002F01.design\u002F19.built-in-structs-and-runtime-types.md",{"type":242,"value":243,"toc":567},"minimark",[244,248,257,263,266,287,292,295,301,363,366,372,377,389,392,414,418,423,426,434,439,447,450,453,469,473,478,481,497,500,503,530,533,538,543,546,549],[245,246,247],"p",{},"本文档说明 Dujie 第一阶段哪些内建名字会形成用户可见的运行时值，以及哪些东西不是“内建结构体”。",[249,250,252,253],"h2",{"id":251},"当前没有公开内建-struct","当前没有公开内建 ",[254,255,256],"code",{},"struct",[245,258,259,260,262],{},"第一阶段语言不提供用户可直接命名、构造和字段访问的公开内建 ",[254,261,256],{},"。",[245,264,265],{},"也就是说，当前这些都不存在：",[267,268,269,281,284],"ul",{},[270,271,272,273,276,277,280],"li",{},"类似 ",[254,274,275],{},"Option","、",[254,278,279],{},"Result"," 这样的公开内建结构体",[270,282,283],{},"渲染节点对应的公开结构体",[270,285,286],{},"宿主属性对应的公开结构体",[245,288,289,290,262],{},"用户可见的具名结构体一律来自用户自己声明的 ",[254,291,256],{},[249,293,294],{"id":294},"内建类型不等于内建结构体",[245,296,297,298,300],{},"以下名字是语言内建类型，但不是公开内建 ",[254,299,256],{},"：",[267,302,303,308,313,318,323,328,333,338,343,348,353,358],{},[270,304,305],{},[254,306,307],{},"int",[270,309,310],{},[254,311,312],{},"float",[270,314,315],{},[254,316,317],{},"bool",[270,319,320],{},[254,321,322],{},"rune",[270,324,325],{},[254,326,327],{},"string",[270,329,330],{},[254,331,332],{},"list\u003CT>",[270,334,335],{},[254,336,337],{},"map\u003CK, V>",[270,339,340],{},[254,341,342],{},"opt\u003CT>",[270,344,345],{},[254,346,347],{},"iter\u003CT>",[270,349,350],{},[254,351,352],{},"any",[270,354,355],{},[254,356,357],{},"widget",[270,359,360],{},[254,361,362],{},"unit",[245,364,365],{},"它们各自有语言级语义，但不暴露为用户可解构的内建结构体定义。",[249,367,369,371],{"id":368},"optt-的运行时值形态",[254,370,342],{}," 的运行时值形态",[245,373,374,376],{},[254,375,342],{}," 的用户可见运行时值形态只有：",[267,378,379,384],{},[270,380,381],{},[254,382,383],{},"none",[270,385,386],{},[254,387,388],{},"some(value)",[245,390,391],{},"规则：",[267,393,394,399,404,407],{},[270,395,396,398],{},[254,397,383],{}," 是空值形态",[270,400,401,403],{},[254,402,388],{}," 是非空值形态",[270,405,406],{},"它们是语言构造，不是公开结构体构造",[270,408,409,410,413],{},"当前也不暴露类似 ",[254,411,412],{},"Option\u003CT> { ... }"," 这样的命名结构",[249,415,416],{"id":362},[254,417,362],{},[245,419,420,422],{},[254,421,362],{}," 是正式类型，但不提供单独的公开字面量或结构体形式。",[245,424,425],{},"它主要出现在：",[267,427,428,431],{},[270,429,430],{},"无返回值函数的返回类型",[270,432,433],{},"没有尾表达式的 block 结果类型",[249,435,437],{"id":436},"itert",[254,438,347],{},[245,440,441,443,444,262],{},[254,442,347],{}," 是内建参数化类型，同时配有内建构造形式 ",[254,445,446],{},"iter(xs)",[245,448,449],{},"但它不作为用户可字段访问的公开结构体暴露。",[245,451,452],{},"第一阶段只保证：",[267,454,455,458],{},[270,456,457],{},"它可以出现在类型位置",[270,459,460,461,464,465,468],{},"它可作为 ",[254,462,463],{},"for"," 与 ",[254,466,467],{},"map\u002Ffilter\u002Fcollect"," 的承载值",[249,470,471],{"id":357},[254,472,357],{},[245,474,475,477],{},[254,476,357],{}," 是抽象渲染结果类型，不公开其内部节点结构。",[245,479,480],{},"这意味着：",[267,482,483,488,494],{},[270,484,485,486],{},"用户可以持有 ",[254,487,357],{},[270,489,490,491,493],{},"可以把 ",[254,492,357],{}," 传递、返回、放进容器",[270,495,496],{},"但不能把它当结构体去字段访问或解构",[249,498,499],{"id":499},"渲染内建不是结构体",[245,501,502],{},"以下名字属于渲染内建，不属于公开内建结构体：",[267,504,505,510,515,520,525],{},[270,506,507],{},[254,508,509],{},"main",[270,511,512],{},[254,513,514],{},"element",[270,516,517],{},[254,518,519],{},"text",[270,521,522],{},[254,523,524],{},"fragment",[270,526,527],{},[254,528,529],{},"comment",[245,531,532],{},"它们要么是入口 intrinsic，要么是渲染树构造 intrinsic。",[249,534,536],{"id":535},"func",[254,537,535],{},[245,539,540,542],{},[254,541,535],{}," 是函数声明和匿名函数表达式的语法形式，不是公开运行时结构体类型。",[245,544,545],{},"第一阶段也不把完整函数值系统作为公开类型系统展开。",[249,547,548],{"id":548},"相关文档",[267,550,551,557,562],{},[270,552,553],{},[554,555,198],"a",{"href":556},".\u002F09.type-system",[270,558,559],{},[554,560,214],{"href":561},".\u002F13.expressions-and-statements",[270,563,564],{},[554,565,222],{"href":566},".\u002F15.render-intrinsics",{"title":568,"searchDepth":569,"depth":569,"links":570},"",2,[571,573,574,576,577,578,579,580,581],{"id":251,"depth":569,"text":572},"当前没有公开内建 struct",{"id":294,"depth":569,"text":294},{"id":368,"depth":569,"text":575},"opt\u003CT> 的运行时值形态",{"id":362,"depth":569,"text":362},{"id":436,"depth":569,"text":347},{"id":357,"depth":569,"text":357},{"id":499,"depth":569,"text":499},{"id":535,"depth":569,"text":535},{"id":548,"depth":569,"text":548},"md",{},{},{"title":236,"description":568},"k4KrFTubI4wdoIbHbz1g93-duUYcTk1AwkfdOrDHx10",[588,589],{"title":107,"path":233,"stem":234,"description":568,"children":-1},null,1776981319058]