[{"data":1,"prerenderedAt":549},["ShallowReactive",2],{"navigation_docs":3,"-features-callback":198,"-features-callback-surround":545},[4,30,81,118,147,171,184],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"/getting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/getting-started/introduction","1.getting-started/2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/getting-started/installation","1.getting-started/3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick start","/getting-started/quickstart","1.getting-started/4.quickstart","i-lucide-code-xml",{"title":26,"path":27,"stem":28,"icon":29},"Troubleshooting","/getting-started/troubleshooting","1.getting-started/5.troubleshooting","i-lucide-wrench",{"title":31,"icon":6,"path":32,"stem":33,"children":34,"page":6},"Core Features","/core-features","2.core-features",[35,39,43,48,52,56,60,64,68,73,77],{"title":36,"path":37,"stem":38,"icon":24},"Main function","/core-features/main-function","2.core-features/1.main-function",{"title":40,"path":41,"stem":42,"icon":24},"Variables","/core-features/variables","2.core-features/2.variables",{"title":44,"path":45,"stem":46,"icon":47},"Comment","/core-features/comment","2.core-features/3.comment","i-lucide-hash",{"title":49,"path":50,"stem":51,"icon":24},"Conditionals","/core-features/conditionals","2.core-features/4.conditionals",{"title":53,"path":54,"stem":55,"icon":24},"Loops","/core-features/loops","2.core-features/5.loops",{"title":57,"path":58,"stem":59,"icon":24},"Functions","/core-features/functions","2.core-features/6.functions",{"title":61,"path":62,"stem":63,"icon":24},"Pointers","/core-features/pointers","2.core-features/7.pointers",{"title":65,"path":66,"stem":67,"icon":24},"Data types","/core-features/datatypes","2.core-features/8.datatypes",{"title":69,"path":70,"stem":71,"icon":72},"Operators","/core-features/operators","2.core-features/9.operators","i-lucide-percent",{"title":74,"path":75,"stem":76,"icon":24},"Literals","/core-features/a.literals","2.core-features/a.literals",{"title":78,"path":79,"stem":80,"icon":24},"Keywords","/core-features/b.keywords","2.core-features/b.keywords",{"title":82,"icon":6,"path":83,"stem":84,"children":85,"page":6},"Features","/features","3.features",[86,90,94,98,102,106,110,114],{"title":87,"path":88,"stem":89,"icon":24},"Const","/features/const","3.features/1.const",{"title":91,"path":92,"stem":93,"icon":24},"Define","/features/define","3.features/2.define",{"title":95,"path":96,"stem":97,"icon":24},"Enum","/features/enum","3.features/3.enum",{"title":99,"path":100,"stem":101,"icon":24},"Union","/features/union","3.features/4.union",{"title":103,"path":104,"stem":105,"icon":24},"Overloading","/features/overloading","3.features/5.overloading",{"title":107,"path":108,"stem":109,"icon":24},"Lambda","/features/lambda","3.features/6.lambda",{"title":111,"path":112,"stem":113,"icon":24},"Callback","/features/callback","3.features/7.callback",{"title":115,"path":116,"stem":117,"icon":24},"Auto","/features/auto","3.features/8.auto",{"title":119,"icon":6,"path":120,"stem":121,"children":122,"page":6},"Advance Features","/advance","4.advance",[123,127,131,135,139,143],{"title":124,"path":125,"stem":126,"icon":24},"Generic Type","/advance/generic-type","4.advance/1.generic-type",{"title":128,"path":129,"stem":130,"icon":24},"Errors","/advance/error","4.advance/2.error",{"title":132,"path":133,"stem":134,"icon":24},"Annotation","/advance/annotation","4.advance/3.annotation",{"title":136,"path":137,"stem":138,"icon":24},"Variadic Function","/advance/variadic-func","4.advance/4.variadic-func",{"title":140,"path":141,"stem":142,"icon":24},"Module","/advance/module-interface","4.advance/5.module-interface",{"title":144,"path":145,"stem":146,"icon":24},"Operator Overloading","/advance/operator-overloading","4.advance/6.operator-overloading",{"title":148,"icon":6,"path":149,"stem":150,"children":151,"page":6},"Struct","/struct","5.struct",[152,155,159,163,167],{"title":148,"path":153,"stem":154,"icon":24},"/struct/struct","5.struct/1.struct",{"title":156,"path":157,"stem":158,"icon":24},"Methods","/struct/methods","5.struct/2.methods",{"title":160,"path":161,"stem":162,"icon":24},"Init/Deinit","/struct/init-deinit","5.struct/3.init-deinit",{"title":164,"path":165,"stem":166,"icon":24},"Encapsulation","/struct/encapsulation","5.struct/4.encapsulation",{"title":168,"path":169,"stem":170,"icon":24},"Static","/struct/static","5.struct/5.static",{"title":172,"icon":6,"path":173,"stem":174,"children":175,"page":6},"Data Structures","/data-structure","6.data-structure",[176,180],{"title":177,"path":178,"stem":179,"icon":24},"Array","/data-structure/array","6.data-structure/array",{"title":181,"path":182,"stem":183,"icon":24},"Structural Type","/data-structure/strutural-type","6.data-structure/strutural-type",{"title":185,"icon":6,"path":186,"stem":187,"children":188,"page":6},"Standard Libraries","/stdlib","7.stdlib",[189,194],{"title":190,"path":191,"stem":192,"icon":193},"stdlib","/stdlib/stdlib","7.stdlib/stdlib","i-lucide-library-big",{"title":195,"path":196,"stem":197,"icon":24},"syscall","/stdlib/syscall","7.stdlib/syscall",{"id":199,"title":111,"body":200,"description":538,"extension":539,"links":540,"meta":541,"navigation":542,"path":112,"seo":543,"stem":113,"__hash__":544},"docs/3.features/7.callback.md",{"type":201,"value":202,"toc":536},"minimark",[203,207,215,221,529,532],[204,205,206],"p",{},"Callback is a function passed as an argument into another function, often called higher order function, which is then executed inside the outer function to complete a specific action.",[208,209,210,211,214],"tip",{},"See ",[212,213,107],"a",{"href":108}," first!",[204,216,217],{},[218,219,220],"strong",{},"Example:",[222,223,228],"pre",{"className":224,"code":225,"language":226,"meta":227,"style":227},"language-kh shiki shiki-themes material-theme-lighter one-light one-dark-pro","struct Button {\n  void() _clickHandler;\n  void onClick(void() handler){\n    self._clickHandler = handler;\n  }\n\n  # a function to perform clicking\n  void click(){\n    # code ...\n    self._clickHandler();\n  }\n\n}\n\n\nint main(void){\n\n  Button button = Button();\n  button.onClick(() => {\n    print(\"hello, button!\\n\");\n    print(\"hello, world!\\n\");\n  });\n\n  # now we can click the button\n  button.click();\n\n  return 0;\n}\n","kh","",[229,230,231,248,263,286,306,312,319,326,337,343,355,360,365,371,376,381,396,401,416,435,460,478,484,489,495,507,512,524],"code",{"__ignoreMap":227},[232,233,236,240,244],"span",{"class":234,"line":235},"line",1,[232,237,239],{"class":238},"sQsOY","struct",[232,241,243],{"class":242},"s8dPH"," Button",[232,245,247],{"class":246},"sM89C"," {\n",[232,249,251,254,257,260],{"class":234,"line":250},2,[232,252,253],{"class":238},"  void",[232,255,256],{"class":246},"() ",[232,258,259],{"class":242},"_clickHandler",[232,261,262],{"class":246},";\n",[232,264,266,268,272,275,278,280,283],{"class":234,"line":265},3,[232,267,253],{"class":238},[232,269,271],{"class":270},"spnjr"," onClick",[232,273,274],{"class":246},"(",[232,276,277],{"class":238},"void",[232,279,256],{"class":246},[232,281,282],{"class":242},"handler",[232,284,285],{"class":246},"){\n",[232,287,289,292,295,297,301,304],{"class":234,"line":288},4,[232,290,291],{"class":242},"    self",[232,293,294],{"class":246},".",[232,296,259],{"class":242},[232,298,300],{"class":299},"sB4Xn"," =",[232,302,303],{"class":242}," handler",[232,305,262],{"class":246},[232,307,309],{"class":234,"line":308},5,[232,310,311],{"class":246},"  }\n",[232,313,315],{"class":234,"line":314},6,[232,316,318],{"emptyLinePlaceholder":317},true,"\n",[232,320,322],{"class":234,"line":321},7,[232,323,325],{"class":324},"seacL","  # a function to perform clicking\n",[232,327,329,331,334],{"class":234,"line":328},8,[232,330,253],{"class":238},[232,332,333],{"class":270}," click",[232,335,336],{"class":246},"(){\n",[232,338,340],{"class":234,"line":339},9,[232,341,342],{"class":324},"    # code ...\n",[232,344,346,348,350,352],{"class":234,"line":345},10,[232,347,291],{"class":242},[232,349,294],{"class":246},[232,351,259],{"class":270},[232,353,354],{"class":246},"();\n",[232,356,358],{"class":234,"line":357},11,[232,359,311],{"class":246},[232,361,363],{"class":234,"line":362},12,[232,364,318],{"emptyLinePlaceholder":317},[232,366,368],{"class":234,"line":367},13,[232,369,370],{"class":246},"}\n",[232,372,374],{"class":234,"line":373},14,[232,375,318],{"emptyLinePlaceholder":317},[232,377,379],{"class":234,"line":378},15,[232,380,318],{"emptyLinePlaceholder":317},[232,382,384,387,390,392,394],{"class":234,"line":383},16,[232,385,386],{"class":242},"int",[232,388,389],{"class":270}," main",[232,391,274],{"class":246},[232,393,277],{"class":238},[232,395,285],{"class":246},[232,397,399],{"class":234,"line":398},17,[232,400,318],{"emptyLinePlaceholder":317},[232,402,404,407,410,412,414],{"class":234,"line":403},18,[232,405,406],{"class":242},"  Button",[232,408,409],{"class":242}," button",[232,411,300],{"class":299},[232,413,243],{"class":270},[232,415,354],{"class":246},[232,417,419,422,424,427,430,433],{"class":234,"line":418},19,[232,420,421],{"class":242},"  button",[232,423,294],{"class":246},[232,425,426],{"class":270},"onClick",[232,428,429],{"class":246},"(() ",[232,431,432],{"class":299},"=>",[232,434,247],{"class":246},[232,436,438,441,443,447,451,455,457],{"class":234,"line":437},20,[232,439,440],{"class":270},"    print",[232,442,274],{"class":246},[232,444,446],{"class":445},"sVH1b","\"",[232,448,450],{"class":449},"spZWa","hello, button!",[232,452,454],{"class":453},"scPpd","\\n",[232,456,446],{"class":445},[232,458,459],{"class":246},");\n",[232,461,463,465,467,469,472,474,476],{"class":234,"line":462},21,[232,464,440],{"class":270},[232,466,274],{"class":246},[232,468,446],{"class":445},[232,470,471],{"class":449},"hello, world!",[232,473,454],{"class":453},[232,475,446],{"class":445},[232,477,459],{"class":246},[232,479,481],{"class":234,"line":480},22,[232,482,483],{"class":246},"  });\n",[232,485,487],{"class":234,"line":486},23,[232,488,318],{"emptyLinePlaceholder":317},[232,490,492],{"class":234,"line":491},24,[232,493,494],{"class":324},"  # now we can click the button\n",[232,496,498,500,502,505],{"class":234,"line":497},25,[232,499,421],{"class":242},[232,501,294],{"class":246},[232,503,504],{"class":270},"click",[232,506,354],{"class":246},[232,508,510],{"class":234,"line":509},26,[232,511,318],{"emptyLinePlaceholder":317},[232,513,515,518,522],{"class":234,"line":514},27,[232,516,517],{"class":238},"  return",[232,519,521],{"class":520},"sriKn"," 0",[232,523,262],{"class":246},[232,525,527],{"class":234,"line":526},28,[232,528,370],{"class":246},[204,530,531],{},"The idea is that we don't know what action to perform when the button is clicked, but we can leave that as a placeholder, which is called a callback, so that the users can pass a function to perform a task, for example printing some text as shown in the above code.",[533,534,535],"style",{},"html pre.shiki code .sQsOY, html code.shiki .sQsOY{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#A626A4;--shiki-default-font-style:inherit;--shiki-dark:#C678DD;--shiki-dark-font-style:inherit}html pre.shiki code .s8dPH, html code.shiki .s8dPH{--shiki-light:#90A4AE;--shiki-default:#E45649;--shiki-dark:#E06C75}html pre.shiki code .sM89C, html code.shiki .sM89C{--shiki-light:#90A4AE;--shiki-default:#383A42;--shiki-dark:#ABB2BF}html pre.shiki code .spnjr, html code.shiki .spnjr{--shiki-light:#6182B8;--shiki-default:#4078F2;--shiki-dark:#61AFEF}html pre.shiki code .sB4Xn, html code.shiki .sB4Xn{--shiki-light:#39ADB5;--shiki-default:#383A42;--shiki-dark:#ABB2BF}html pre.shiki code .seacL, html code.shiki .seacL{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0A1A7;--shiki-default-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic}html pre.shiki code .sVH1b, html code.shiki .sVH1b{--shiki-light:#39ADB5;--shiki-default:#50A14F;--shiki-dark:#98C379}html pre.shiki code .spZWa, html code.shiki .spZWa{--shiki-light:#91B859;--shiki-default:#50A14F;--shiki-dark:#98C379}html pre.shiki code .scPpd, html code.shiki .scPpd{--shiki-light:#90A4AE;--shiki-default:#0184BC;--shiki-dark:#56B6C2}html pre.shiki code .sriKn, html code.shiki .sriKn{--shiki-light:#F76D47;--shiki-default:#986801;--shiki-dark:#D19A66}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":227,"searchDepth":250,"depth":250,"links":537},[],"Call a function later on.","md",null,{},{"icon":24},{"title":111,"description":538},"P1mGWVog5v2mXwmn2QuIbMjIojdTVejAj0oJq64gM1Q",[546,548],{"title":107,"path":108,"stem":109,"description":547,"icon":24,"children":-1},"Learn about lambda in Cambo",{"title":115,"path":116,"stem":117,"description":540,"icon":24,"children":-1},1774971230224]