[{"data":1,"prerenderedAt":595},["ShallowReactive",2],{"navigation_docs":3,"-features-overloading":198,"-features-overloading-surround":590},[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":103,"body":200,"description":583,"extension":584,"links":585,"meta":586,"navigation":587,"path":104,"seo":588,"stem":105,"__hash__":589},"docs/3.features/5.overloading.md",{"type":201,"value":202,"toc":579},"minimark",[203,208,216,221,345,348,351,433,436,452,561,569,572,575],[204,205,207],"h2",{"id":206},"function-overloading","Function Overloading",[209,210,211,212,215],"p",{},"Overloaded functions are funtions that share exact same name but different parameters. And each function\nhas its own unique signature. A signature is the combination of the function's name and parameters.",[213,214],"br",{},"\nsignature = name + parameters",[217,218,220],"h4",{"id":219},"example","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","int add(int a, int b){\n  return a + b;\n}\n\nint add(int a, int b, int c){\n  return a + b + c;\n}\n","kh","",[229,230,231,264,282,288,295,323,340],"code",{"__ignoreMap":227},[232,233,236,240,244,248,250,253,256,258,261],"span",{"class":234,"line":235},"line",1,[232,237,239],{"class":238},"s8dPH","int",[232,241,243],{"class":242},"spnjr"," add",[232,245,247],{"class":246},"sM89C","(",[232,249,239],{"class":238},[232,251,252],{"class":238}," a",[232,254,255],{"class":246},", ",[232,257,239],{"class":238},[232,259,260],{"class":238}," b",[232,262,263],{"class":246},"){\n",[232,265,267,271,273,277,279],{"class":234,"line":266},2,[232,268,270],{"class":269},"sQsOY","  return",[232,272,252],{"class":238},[232,274,276],{"class":275},"sB4Xn"," +",[232,278,260],{"class":238},[232,280,281],{"class":246},";\n",[232,283,285],{"class":234,"line":284},3,[232,286,287],{"class":246},"}\n",[232,289,291],{"class":234,"line":290},4,[232,292,294],{"emptyLinePlaceholder":293},true,"\n",[232,296,298,300,302,304,306,308,310,312,314,316,318,321],{"class":234,"line":297},5,[232,299,239],{"class":238},[232,301,243],{"class":242},[232,303,247],{"class":246},[232,305,239],{"class":238},[232,307,252],{"class":238},[232,309,255],{"class":246},[232,311,239],{"class":238},[232,313,260],{"class":238},[232,315,255],{"class":246},[232,317,239],{"class":238},[232,319,320],{"class":238}," c",[232,322,263],{"class":246},[232,324,326,328,330,332,334,336,338],{"class":234,"line":325},6,[232,327,270],{"class":269},[232,329,252],{"class":238},[232,331,276],{"class":275},[232,333,260],{"class":238},[232,335,276],{"class":275},[232,337,320],{"class":238},[232,339,281],{"class":246},[232,341,343],{"class":234,"line":342},7,[232,344,287],{"class":246},[209,346,347],{},"In this example, we define two functions sharing the same name, but each has different signature because\nof the different parameters. And you can define many functions sharing the same name as many as you want\nas long as they have different parameters.",[209,349,350],{},"Now look at another example",[222,352,354],{"className":224,"code":353,"language":226,"meta":227,"style":227},"int add(int a, int b){\n  return a + b;\n}\n\nfloat add(int a, int b){\n  return a + b;\n}\n",[229,355,356,376,388,392,396,417,429],{"__ignoreMap":227},[232,357,358,360,362,364,366,368,370,372,374],{"class":234,"line":235},[232,359,239],{"class":238},[232,361,243],{"class":242},[232,363,247],{"class":246},[232,365,239],{"class":238},[232,367,252],{"class":238},[232,369,255],{"class":246},[232,371,239],{"class":238},[232,373,260],{"class":238},[232,375,263],{"class":246},[232,377,378,380,382,384,386],{"class":234,"line":266},[232,379,270],{"class":269},[232,381,252],{"class":238},[232,383,276],{"class":275},[232,385,260],{"class":238},[232,387,281],{"class":246},[232,389,390],{"class":234,"line":284},[232,391,287],{"class":246},[232,393,394],{"class":234,"line":290},[232,395,294],{"emptyLinePlaceholder":293},[232,397,398,401,403,405,407,409,411,413,415],{"class":234,"line":297},[232,399,400],{"class":238},"float",[232,402,243],{"class":242},[232,404,247],{"class":246},[232,406,239],{"class":238},[232,408,252],{"class":238},[232,410,255],{"class":246},[232,412,239],{"class":238},[232,414,260],{"class":238},[232,416,263],{"class":246},[232,418,419,421,423,425,427],{"class":234,"line":325},[232,420,270],{"class":269},[232,422,252],{"class":238},[232,424,276],{"class":275},[232,426,260],{"class":238},[232,428,281],{"class":246},[232,430,431],{"class":234,"line":342},[232,432,287],{"class":246},[209,434,435],{},"However, this will cause compilation error becuase two functions sharing the same signature exist at the\nsame scope. Although they have different return types, it does not change the function signature as long as\nthe parameters stay the same.",[437,438,439,442],"note",{},[209,440,441],{},"The parameters only make the signiture different only when:",[443,444,445,449],"ul",{},[446,447,448],"li",{},"changes in type.",[446,450,451],{},"changes in number of parameters.",[222,453,455],{"className":224,"code":454,"language":226,"meta":227,"style":227},"void func(int a, float b){\n  # code ...\n}\n\nvoid func(int x, float y){\n  # code ...\n}\n\nvoid func(float m, int n){\n  # code ...\n}\n",[229,456,457,479,485,489,493,515,519,523,528,551,556],{"__ignoreMap":227},[232,458,459,462,465,467,469,471,473,475,477],{"class":234,"line":235},[232,460,461],{"class":269},"void",[232,463,464],{"class":242}," func",[232,466,247],{"class":246},[232,468,239],{"class":238},[232,470,252],{"class":238},[232,472,255],{"class":246},[232,474,400],{"class":238},[232,476,260],{"class":238},[232,478,263],{"class":246},[232,480,481],{"class":234,"line":266},[232,482,484],{"class":483},"seacL","  # code ...\n",[232,486,487],{"class":234,"line":284},[232,488,287],{"class":246},[232,490,491],{"class":234,"line":290},[232,492,294],{"emptyLinePlaceholder":293},[232,494,495,497,499,501,503,506,508,510,513],{"class":234,"line":297},[232,496,461],{"class":269},[232,498,464],{"class":242},[232,500,247],{"class":246},[232,502,239],{"class":238},[232,504,505],{"class":238}," x",[232,507,255],{"class":246},[232,509,400],{"class":238},[232,511,512],{"class":238}," y",[232,514,263],{"class":246},[232,516,517],{"class":234,"line":325},[232,518,484],{"class":483},[232,520,521],{"class":234,"line":342},[232,522,287],{"class":246},[232,524,526],{"class":234,"line":525},8,[232,527,294],{"emptyLinePlaceholder":293},[232,529,531,533,535,537,539,542,544,546,549],{"class":234,"line":530},9,[232,532,461],{"class":269},[232,534,464],{"class":242},[232,536,247],{"class":246},[232,538,400],{"class":238},[232,540,541],{"class":238}," m",[232,543,255],{"class":246},[232,545,239],{"class":238},[232,547,548],{"class":238}," n",[232,550,263],{"class":246},[232,552,554],{"class":234,"line":553},10,[232,555,484],{"class":483},[232,557,559],{"class":234,"line":558},11,[232,560,287],{"class":246},[562,563,564,565,568],"caution",{},"The different identifiers or order of the parameters do not differ the signature. Which means the signatures of the three functions ",[229,566,567],{},"func"," above are the same, and this will result in compilation error.",[204,570,144],{"id":571},"operator-overloading",[209,573,574],{},"coming soon ...",[576,577,578],"style",{},"html pre.shiki code .s8dPH, html code.shiki .s8dPH{--shiki-light:#90A4AE;--shiki-default:#E45649;--shiki-dark:#E06C75}html pre.shiki code .spnjr, html code.shiki .spnjr{--shiki-light:#6182B8;--shiki-default:#4078F2;--shiki-dark:#61AFEF}html pre.shiki code .sM89C, html code.shiki .sM89C{--shiki-light:#90A4AE;--shiki-default:#383A42;--shiki-dark:#ABB2BF}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 .sB4Xn, html code.shiki .sB4Xn{--shiki-light:#39ADB5;--shiki-default:#383A42;--shiki-dark:#ABB2BF}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);}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}",{"title":227,"searchDepth":266,"depth":266,"links":580},[581,582],{"id":206,"depth":266,"text":207},{"id":571,"depth":266,"text":144},"Sharing is caring!","md",null,{},{"icon":24},{"title":103,"description":583},"lL8fkvjNb0adg8yXRWMdmo36M_uaJ7FEsal4onugDf4",[591,593],{"title":99,"path":100,"stem":101,"description":592,"icon":24,"children":-1},"Different types live in the same place.",{"title":107,"path":108,"stem":109,"description":594,"icon":24,"children":-1},"Learn about lambda in Cambo",1774971229841]