{"id":249,"date":"2024-08-20T11:34:48","date_gmt":"2024-08-20T11:34:48","guid":{"rendered":"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/"},"modified":"2024-08-20T11:34:48","modified_gmt":"2024-08-20T11:34:48","slug":"kintamuju-ir-konstantu-supratimas-programoje-go","status":"publish","type":"post","link":"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/","title":{"rendered":"Kintam\u0173j\u0173 ir konstant\u0173 supratimas programoje \u201eGo\u201c."},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"\">\n<p>Kintamieji ir konstantos yra pagrindin\u0117s daugelio programavimo kalb\u0173 s\u0105vokos. Jie yra duomen\u0173 saugojimo ir tvarkymo elementai. \u0160iame straipsnyje i\u0161nagrin\u0117sime, kaip Go veikia kintamieji ir konstantos.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Turinys:<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Kas_yra_kintamieji\" >Kas yra kintamieji?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Kaip_sukurti_kintamaji\" >Kaip sukurti kintam\u0105j\u012f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Aiski_deklaracija\" >Ai\u0161ki deklaracija<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Trumpoji_kintamojo_deklaracija\" >Trumpoji kintamojo deklaracija<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Kelios_kintamuju_deklaracijos\" >Kelios kintam\u0173j\u0173 deklaracijos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Nulines_vertes\" >Nulin\u0117s vert\u0117s<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Kas_yra_kintamoji_apimtis\" >Kas yra kintamoji apimtis?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Pasauliniai_kintamieji\" >Pasauliniai kintamieji<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Vietiniai_kintamieji\" >Vietiniai kintamieji<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Vardu_suteikimo_konvencijos_Go\" >Vard\u0173 suteikimo konvencijos Go<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Kas_yra_%E2%80%9EGo%E2%80%9C_konstantos\" >Kas yra \u201eGo\u201c konstantos?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Kaip_deklaruoti_konstantas_Go\" >Kaip deklaruoti konstantas Go<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#%E2%80%9EGo%E2%80%9C_konstantu_tipai\" >\u201eGo\u201c konstant\u0173 tipai<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Neirasytos_konstantos\" >Ne\u012fra\u0161ytos konstantos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Ivestos_konstantos\" >\u012evestos konstantos<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/infonaujiena.lt\/index.php\/2024\/08\/20\/kintamuju-ir-konstantu-supratimas-programoje-go\/#Tai_Wrapas\" >Tai Wrapas<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Kas_yra_kintamieji\"><\/span>Kas yra kintamieji?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kintamasis yra saugojimo vieta, identifikuojama pavadinimu (arba identifikatoriumi), kuriame yra reik\u0161m\u0117. \u0160i reik\u0161m\u0117 gali keistis (arba kisti) programos vykdymo metu, taigi ir pavadinimas \u201ekintamasis\u201c.<\/p>\n<p>Pavyzd\u017eiui:<\/p>\n<pre><code class=\"language-go\">myName := \"temitope\"\nfmt.Println(myName)\n\nmyName = \"oyedele\"\nfmt.Println(myName)\n<\/code><\/pre>\n<p>Suk\u016br\u0117me kintam\u0105j\u012f su identifikatoriumi <code>myName<\/code> kurioje yra eilut\u0117s reik\u0161m\u0117. Tada pakeit\u0117me reik\u0161m\u0119 \u012f kit\u0105 eilut\u0119, parodydami, kad kintamieji yra kintami.<\/p>\n<p>Kintamieji leid\u017eia saugoti \u012fvairi\u0173 tip\u0173 duomenis, pvz., sveikuosius skai\u010dius, slankiojo kablelio skai\u010dius, eilutes ar objektus.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Kaip_sukurti_kintamaji\"><\/span>Kaip sukurti kintam\u0105j\u012f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Yra du pagrindiniai b\u016bdai, kaip sukurti kintam\u0105j\u012f programoje Go: ai\u0161ki deklaracija ir trumpoji deklaracija.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Aiski_deklaracija\"><\/span>Ai\u0161ki deklaracija<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tai yra tradicinis b\u016bdas sukurti kintam\u0105j\u012f programoje Go. Tai apima naudojim\u0105 <code>var<\/code> raktin\u012f \u017eod\u012f ir deklaruoti kintamojo tip\u0105, kad j\u016bs\u0173 kodas b\u016bt\u0173 lengviau skaitomas ir ai\u0161kesnis.<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    var age int = 25\n    var name string = \"Temitope\"\n    var height float64 = 5.7\n\n    fmt.Println(age, name, height)\n}\n<\/code><\/pre>\n<p>Prie\u0161 priskirdami reik\u0161m\u0119 kiekvienam kintamajam, deklaravome jo duomen\u0173 tip\u0105.<\/p>\n<p>I\u0161vestis:<\/p>\n<pre><code>25 Temitope 5.7\n<\/code><\/pre>\n<p>The <code>var<\/code> raktin\u012f \u017eod\u012f ir duomen\u0173 tip\u0105 taip pat galima naudoti nepriskiriant pradin\u0117s reik\u0161m\u0117s:<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    var age int\n    var name string\n    var height float64\n\n    age = 25\n    name = \"Temitope\"\n    height = 5.7\n\n    fmt.Println(age, name, height)\n}\n<\/code><\/pre>\n<p>Tokiu b\u016bdu kintamieji pirmiausia deklaruojami be pradin\u0117s reik\u0161m\u0117s. Tada joms priskiriamos reik\u0161m\u0117s v\u0117liau kode su tokia pa\u010dia i\u0161vestimi kaip ir pirmame pavyzdyje.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Trumpoji_kintamojo_deklaracija\"><\/span>Trumpoji kintamojo deklaracija<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Sutrumpinta kintamojo deklaracijos sintaks\u0117 (<code>:=<\/code>) yra glaustesnis b\u016bdas deklaruoti kintamuosius. \u0160is metodas leid\u017eia deklaruoti ir inicijuoti kintam\u0105j\u012f vienoje eilut\u0117je, ai\u0161kiai nenurodant jo tipo, nes tipas yra numanomas i\u0161 priskirtos vert\u0117s.<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    age := 25\n    name := \"Temitope\"\n    height := 5.7\n\n    fmt.Println(age, name, height)\n}\n<\/code><\/pre>\n<p>\u010cia kiekvienas kintamasis buvo deklaruotas kartu su jo verte, o \u201eGo\u201c nustat\u0117 duomen\u0173 tip\u0105.<\/p>\n<p>I\u0161vestis:<\/p>\n<pre><code>25 Temitope 5.7\n<\/code><\/pre>\n<p>Vienas sutrumpinto kintamojo deklaracijos tr\u016bkumas yra tas, kad j\u012f galima naudoti tik funkcijoje.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kelios_kintamuju_deklaracijos\"><\/span>Kelios kintam\u0173j\u0173 deklaracijos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Galite deklaruoti ir inicijuoti kelis kintamuosius toje pa\u010dioje eilut\u0117je, atskirdami kiekvien\u0105 kintam\u0105j\u012f kableliu. \u0160is metodas yra paprastas ir nesud\u0117tingas, da\u017eniausiai naudojamas, kai kintamieji yra susij\u0119 arba kai norite juos inicijuoti kartu. Pavyzd\u017eiui:<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    var age, height int = 25, 180\n    var name, city string = \"Temitope\", \"New York\"\n\n    fmt.Println(age, height)\n    fmt.Println(name, city)\n}\n<\/code><\/pre>\n<p>I\u0161vestis:<\/p>\n<pre><code>25 180\nTemitope New York\n<\/code><\/pre>\n<p>Taip pat bloke galite deklaruoti kelis kintamuosius:<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    var (\n        age    int    = 25\n        name   string = \"Temitope\"\n        height int    = 180\n        city   string = \"New York\"\n    )\n\n    fmt.Println(age, name, height, city)\n}\n<\/code><\/pre>\n<p>I\u0161vestis:<\/p>\n<pre><code>25 Temitope 180 New York\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Nulines_vertes\"><\/span>Nulin\u0117s vert\u0117s<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kai kintamieji deklaruojami j\u0173 inicijuojant, jiems pagal numatytuosius nustatymus priskiriamos nulin\u0117s reik\u0161m\u0117s, atsi\u017evelgiant \u012f kintamojo tip\u0105. Toliau pateikiamas pavyzdys, kaip galite deklaruoti numatyt\u0105sias reik\u0161mes:<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    var intValue int\n    var floatValue float64\n    var boolValue bool\n    var stringValue string\n    var ptrValue *int\n    var sliceValue ()int\n    var mapValue map(string)int\n\n    fmt.Println(\"Zero values:\")\n    fmt.Println(\"int:\", intValue)\n    fmt.Println(\"float64:\", floatValue)\n    fmt.Println(\"bool:\", boolValue)\n    fmt.Println(\"string:\", stringValue)\n    fmt.Println(\"pointer:\", ptrValue)\n    fmt.Println(\"slice:\", sliceValue)\n    fmt.Println(\"map:\", mapValue)\n}\n<\/code><\/pre>\n<p>I\u0161vestis:<\/p>\n<pre><code>Zero values:\nint: 0\nfloat64: 0\nbool: false\nstring: \npointer: &lt;nil&gt;\nslice: ()\nmap: map()\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Kas_yra_kintamoji_apimtis\"><\/span>Kas yra kintamoji apimtis?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kintamojo apimtis nustato, kur j\u012f galima pasiekti ir modifikuoti j\u016bs\u0173 kode. Kintamieji gali b\u016bti deklaruojami globaliai arba lokaliai.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Pasauliniai_kintamieji\"><\/span>Pasauliniai kintamieji<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Visuotiniai kintamieji deklaruojami u\u017e bet kurios funkcijos rib\u0173, paprastai failo vir\u0161uje, ir juos gali pasiekti bet kuri to paties paketo funkcija. Pavyzd\u017eiui:<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nvar globalCounter int = 0\n\nfunc incrementCounter() {\n    globalCounter++\n}\n\nfunc main() {\n    fmt.Println(\"Initial Counter:\", globalCounter)\n    incrementCounter()\n    fmt.Println(\"After Increment:\", globalCounter)\n}\n<\/code><\/pre>\n<p>\u0160iame pavyzdyje <code>globalCounter<\/code> yra pasaulinis kintamasis, pasiekiamas tiek <code>incrementCounter<\/code> funkcija ir <code>main<\/code> funkcija. Vert\u0117 <code>globalCounter<\/code> i\u0161lieka per funkcij\u0173 skambu\u010dius.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Vietiniai_kintamieji\"><\/span>Vietiniai kintamieji<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kita vertus, vietiniai kintamieji yra deklaruojami funkcijoje arba bloke ir yra pasiekiami tik toje konkre\u010dioje funkcijoje ar bloke. Jie sukuriami, kai funkcija arba blokas yra vykdomas, ir sunaikinami, kai tik jis yra baigtas. Pavyzd\u017eiui:<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nfunc incrementCounter() {\n    localCounter := 0\n    localCounter++\n    fmt.Println(\"Local Counter:\", localCounter)\n}\n\nfunc main() {\n    incrementCounter()\n    incrementCounter()\n}\n<\/code><\/pre>\n<p>\u0160iame pavyzdyje <code>localCounter<\/code> yra vietinis kintamasis viduje <code>incrementCounter<\/code> funkcija. Kiekvien\u0105 kart\u0105 <code>incrementCounter<\/code> vadinamas nauju <code>localCounter<\/code> sukuriamas, inicijuojamas iki 0 ir padidinamas. Vert\u0117 <code>localCounter<\/code> tarp funkcij\u0173 i\u0161kvietim\u0173 nei\u0161lieka.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Vardu_suteikimo_konvencijos_Go\"><\/span>Vard\u0173 suteikimo konvencijos Go<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Tinkamas kintam\u0173j\u0173 \u012fvardijimas yra labai svarbus norint para\u0161yti \u0161var\u0173, skaitom\u0105 ir pri\u017ei\u016brim\u0105 kod\u0105. \u201eGo\u201c turi konkre\u010dius kintam\u0173j\u0173 \u012fvardijimo susitarimus ir taisykles:<\/p>\n<ul>\n<li>\n<strong>Naudokite apra\u0161omuosius pavadinimus<\/strong>: pasirinkite pavadinimus, kurie ai\u0161kiai apib\u016bdina kintamojo tiksl\u0105 ar turin\u012f, pvz <code>age<\/code>, <code>totalPrice<\/code>arba <code>userName<\/code>.<\/li>\n<li>\n<strong>Naudokite \u201eCamelCase\u201c keli\u0173 \u017eod\u017ei\u0173 pavadinimams<\/strong>: \u201eGo\u201c kintam\u0173j\u0173 pavadinimams, kuriuos sudaro keli \u017eod\u017eiai, \u012fprasta naudoti \u201ecamelCase\u201c. Pirmasis \u017eodis ra\u0161omas ma\u017eosiomis raid\u0117mis, o kiekvieno paskesnio \u017eod\u017eio pirmoji raid\u0117 ra\u0161oma did\u017ei\u0105ja.<\/li>\n<li>\n<strong>Venkite naudoti apatinius br\u016bk\u0161nius<\/strong>: laikykit\u0117s CamelCase, kad atitiktum\u0117te Go idiomatin\u012f stili\u0173, venkite pabraukim\u0173, kad atskirtum\u0117te \u017eod\u017eius kintam\u0173j\u0173 pavadinimuose.<\/li>\n<li>\n<strong>Trumpalaikiams kintamiesiems naudokite trumpus pavadinimus<\/strong>: trumpalaikiams kintamiesiems, pvz., kilp\u0173 skaitikliams ar indeksams, priimtina naudoti trumpus pavadinimus, pvz. <code>i<\/code>, <code>j<\/code>arba <code>k<\/code>.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Kas_yra_%E2%80%9EGo%E2%80%9C_konstantos\"><\/span>Kas yra \u201eGo\u201c konstantos?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Konstantos yra nekintamos vert\u0117s, apibr\u0117\u017etos kompiliavimo metu, kuri\u0173 negalima keisti programos vykdymo metu. Jie naudingi nustatant vertes, kurios \u017einomos i\u0161 anksto ir i\u0161liks tokios pat.<\/p>\n<p>Pavyzd\u017eiui, jei kuriate internetin\u0119 parduotuv\u0119, kurioje standartinis pristatymo mokestis visada yra 10 USD, galite j\u012f deklaruoti kaip pastov\u0173. Tai leid\u017eia j\u012f naudoti visoje programoje, kai reikia taikyti siuntimo mokes\u010dius. Jei siuntimo \u012fkainiai pasikei\u010dia, vert\u0119 reikia atnaujinti tik vienoje vietoje.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Kaip_deklaruoti_konstantas_Go\"><\/span>Kaip deklaruoti konstantas Go<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Galite deklaruoti konstantas naudodami <code>const<\/code> raktinis \u017eodis, po kurio nurodomas pavadinimas, tipas (neb\u016btina, jei reik\u0161m\u0117 rei\u0161kia tip\u0105) ir konstantos reik\u0161m\u0117. \u0160tai pavyzdys:<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    const pi float64 = 3.14159\n    const greeting string = \"Hello, World!\"\n\n    fmt.Println(\"Pi:\", pi)\n    fmt.Println(\"Greeting:\", greeting)\n}\n<\/code><\/pre>\n<p>Jei bandysite pakeisti konstant\u0105 po to, kai ji buvo paskelbta, gausite kompiliavimo laiko klaid\u0105.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E2%80%9EGo%E2%80%9C_konstantu_tipai\"><\/span>\u201eGo\u201c konstant\u0173 tipai<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Konstantos gali b\u016bti suskirstytos \u012f \u012fvestas arba ne\u012fvestas. Abi skirtos tam pa\u010diam tikslui \u2013 teikti fiksuotas, nekintamas reik\u0161mes visoje programoje, ta\u010diau skiriasi tuo, kaip \u201eGo\u201c tvarko j\u0173 tipus ir kiek lankst\u016bs jie naudojami.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Neirasytos_konstantos\"><\/span>Ne\u012fra\u0161ytos konstantos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Ne\u012fra\u0161ytoms konstantoms tipas nepriskiriamas, nebent jos naudojamos kontekste, kuriam reikalingas tipas. \u201eGo\u201c nustato tip\u0105 toje vietoje, kur naudojama konstanta, tod\u0117l netipuotos konstantos tampa lankstesn\u0117s<\/p>\n<p>nes juos galima naudoti \u012fvairiuose kontekstuose nereikalaujant tipo konvertavimo.<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nconst gravity = 9.81\n\nfunc main() {\n    var height int = 10\n    var acceleration float64 = gravity * float64(height)\n\n    fmt.Println(\"Acceleration:\", acceleration)\n}\n<\/code><\/pre>\n<p>\u010cia <code>gravity<\/code> yra ne\u012fvesta konstanta, leid\u017eianti Go nustatyti jos tip\u0105 pagal jos naudojim\u0105. Kada <code>gravity<\/code> naudojamas skai\u010diuojant su a <code>float64<\/code>Go automati\u0161kai j\u012f traktuoja kaip a <code>float64<\/code>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ivestos_konstantos\"><\/span>\u012evestos konstantos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u012evestos konstantos turi ai\u0161kiai deklaruot\u0105 tip\u0105, tai rei\u0161kia, kad jas galima naudoti tik kontekstuose, kurie atitinka t\u0105 tip\u0105, arba gali b\u016bti konvertuojami \u012f suderinam\u0105 tip\u0105. Tipin\u0117s konstantos yra grie\u017etesn\u0117s, tod\u0117l vert\u0117 visada bus traktuojama kaip konkretus tipas, kuriuo ji buvo deklaruota.<\/p>\n<pre><code class=\"language-go\">package main\n\nimport \"fmt\"\n\nconst speedOfLight int = 299792458\n\nfunc main() {\n    var distance int = speedOfLight * 2\n    fmt.Println(\"Distance:\", distance)\n}\n<\/code><\/pre>\n<p>\u010cia <code>speedOfLight<\/code> yra tipin\u0117 konstanta su tipu <code>int<\/code>. Jis gali b\u016bti naudojamas tik operacijose su kitais <code>int<\/code> vert\u0117s arba ai\u0161kiai konvertuoti \u012f kit\u0105 tip\u0105.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tai_Wrapas\"><\/span>Tai Wrapas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0160iame straipsnyje mes i\u0161tyr\u0117me, kas yra kintamieji ir konstantos ir kaip juos deklaruoti Go. Kintamieji ir konstantos yra labai svarb\u016bs programavimo \u012frankiai, leid\u017eiantys k\u016br\u0117jams efektyviai valdyti ir manipuliuoti duomenimis. Suprasdami, kaip juos naudoti, galite \u017eymiai pagerinti kodo kokyb\u0119.<\/p>\n<\/p><\/div>\n<p>Jei tekste radote klaid\u0105, si\u0173skite prane\u0161im\u0105 autoriui pa\u017eym\u0117dami klaid\u0105 ir paspausdami Ctrl-Enter.<\/p>\n<p><br \/>\n<br \/><a href=\"https:\/\/techplanet.today\/post\/understanding-variables-and-constants-in-go\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kintamieji ir konstantos yra pagrindin\u0117s daugelio programavimo kalb\u0173 s\u0105vokos. Jie yra duomen\u0173 saugojimo ir tvarkymo elementai. \u0160iame straipsnyje i\u0161nagrin\u0117sime, kaip Go veikia kintamieji ir konstantos. Kas yra kintamieji? Kintamasis yra saugojimo vieta, identifikuojama pavadinimu (arba identifikatoriumi), kuriame yra reik\u0161m\u0117. \u0160i reik\u0161m\u0117 gali keistis (arba kisti) programos vykdymo metu, taigi ir pavadinimas \u201ekintamasis\u201c. Pavyzd\u017eiui: myName := [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":250,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-249","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologijos"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/posts\/249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/comments?post=249"}],"version-history":[{"count":0,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/posts\/249\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/media\/250"}],"wp:attachment":[{"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/media?parent=249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/categories?post=249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infonaujiena.lt\/index.php\/wp-json\/wp\/v2\/tags?post=249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}