ഗോയുടെ സംഖ്യകൾ (ബൈറ്റ്, int64, float32, മുതലായവ), ബൂളിയൻസ്, പ്രതീക സ്ട്രിങ്സ് (സ്ട്രിംഗ്) എന്നിവയുൾപ്പെടെ ധാരാളം അന്തർനിർമ്മിത തരങ്ങൾ ഉണ്ട്. സ്ട്രിങ്സ് മാറ്റമില്ലാത്തവയാണ്; ബിൽറ്റ്-ഇൻ ഓപ്പറേറ്റർമാർ, കീവേഡുകൾ (ഫംഗ്ഷണേക്കാൾ) എന്നിവ സങ്കലനം, താരതമ്യം, യോജിപ്പിക്കൽ, യു.ടി.എഫ്-8(UTF-8) എൻകോഡിംഗ് / ഡീകോഡിംഗ് എന്നിവ നൽകുന്നു.റെക്കോർഡ് തരങ്ങൾ സ്ട്രറ്റ് കീവേഡ്(struct keyword) ഉപയോഗിച്ച് നിർവചിക്കാവുന്നതാണ്.

ഓരോ തരത്തിനും, ഓരോ നോൺ-നെഗറ്റീവ് ഇന്റഗ്രേറ്റ് കോൺസ്റ്റന്റന്റ് n എന്നിവയ്ക്കും ഒരു അറേ തരം സൂചിപ്പിച്ചിരിക്കുന്നത് ; വിവിധ ദൈർഘ്യമുള്ള അറേകൾ പല തരത്തിലുണ്ട്, ഇത് വ്യത്യസ്ത തരം പോലെയാണ്. ചലനാത്മക ശ്രേണികൾ "സ്ലൈസ്സെസ്" എന്ന പേരിൽ ലഭ്യമാണ്, []T എന്നത് ചില തരത്തിലുള്ള ടിയെ സൂചിപ്പിച്ചിരിക്കുന്നു. ശ്രേണികളെ വിപുലീകരിക്കാൻ പുതിയ മെമ്മറി ആവശ്യമായി വരുമ്പോൾ അവയ്ക്ക് ഒരു നീളവും ശേഷിയുമുണ്ട്. നിരവധി ഭാഗങ്ങൾ അവരുടെ അന്തർഭവിച്ചിരിക്കുന്ന മെമ്മറി പങ്കിടാനിടയുണ്ട്.

എല്ലാ തരങ്ങൾക്കും പോയിന്ററുകൾ ലഭ്യമാണ്, കൂടാതെ പോയിന്റർ-ടു-T എന്നത് ടൈപ്പ് * T എന്ന് സൂചിപ്പിക്കുന്നു. പരോക്ഷമായ അഡ്രസ്സ് ടേക്കിംഗും, & ഉം * സിയിലേപോലെയാണ് ഉപയോഗിക്കുന്നത് അല്ലെങ്കിൽ മെത്തേഡ് കോൾ അല്ലെങ്കിൽ ആട്രിബ്യൂട്ട് ആക്സസ് സിന്റാക്സ് വഴി പൂർണ്ണമായും സംഭവിക്കുന്നു.സ്റ്റാൻഡേർഡ് ലൈബ്രറിയിൽ സ്പെഷ്യൽ unsafe.Pointer ഒഴികെ പോയിന്റർ അരിത്മെറ്റിക് ഇല്ല.

ഒരു ജോടി തരങ്ങൾക്ക് K, V, ടൈപ്പ് മാപ്പ് [K] V ടൈപ്പ്- V മൂല്യങ്ങളുള്ള ടൈപ്പ്- K കീകൾ മാപ്പുചെയ്യുന്ന ഹാഷ് ടേബിളുകളുടെ തരങ്ങളാണ് ഉള്ളത്. പ്രത്യേക വാക്യഘടനയും അന്തർനിർമ്മിതവുമായ ഫംഗ്ഷനുകൾ ഉപയോഗിച്ച് ഭാഷയിലേക്ക് ഹാഷ് ടേബിളുകൾ നിർമ്മിച്ചിരിക്കുന്നു. സമയോചിതമായ ഗോ പ്രക്രിയകൾക്കിടയിൽ chanT സമകാലിക ഗണിത പ്രക്രിയകൾ തമ്മിലുള്ള ടൈപ്പ് ടി മൂല്യങ്ങൾ അയയ്ക്കാൻ അനുവദിക്കുന്ന ഒരു ചാനൽ ആണ്.

ഇൻറർഫെയ്സുകൾക്കുള്ള പിന്തുണ കൂടാതെ, ഗോ ടൈപ്പ് സംവിധാനം നാമമാത്രമാണ്: ഒരു പുതിയ പേരുള്ള തരം നിർവചിക്കുവാനുള്ള ടൈപ്പ് കീവേഡ് ഉപയോഗിയ്ക്കാം, ഇത് ഒരേ ലേഔട്ട് ഉള്ള മറ്റ് പേരുള്ളതിൽ നിന്നും വ്യത്യസ്തമാണ് (ഒരു codice_8ന്റെ കാര്യത്തിൽ, ഒരേ നിലയിലുള്ള അതേ അംഗങ്ങൾ). വിവിധ തരത്തിലുള്ള രൂപപരിണാമം (ഉദാഹരണത്തിന്, വിവിധ പൂർണ്ണസംഖ്യാതരങ്ങൾക്ക് ഇടയിൽ) മുൻകൂർ നിർവചിച്ചിരിക്കുകയും ഒരു പുതിയ തരം കൂട്ടിച്ചേർക്കുകയും ചെയ്യുന്നത് അധിക പരിവർത്തനങ്ങൾ നിർവചിച്ചേക്കാം, എന്നാൽ പേരുള്ള തരങ്ങൾ തമ്മിലുള്ള പരിവർത്തനങ്ങൾ സ്പഷ്ടമായി പ്രവർത്തിപഥത്തിൽ എത്തിക്കണം.ഉദാഹരണത്തിനു്, 32-ബിറ്റ് അജ്ഞാതമായ (unsigned)പൂർണ്ണസംഖ്യകളുടെ അടിസ്ഥാനത്തിൽ IPv4 വിലാസങ്ങൾക്കുള്ള ഒരു രീതി നിഷ്കർഷിയ്ക്കുന്നതിനായി codice_9കീവേഡ് ഉപയോഗിയ്ക്കാം.
type ipv4addr uint32
ഈ തരത്തിലുള്ള നിർവ്വചനത്തിൽ, ipv4addr (x) ഒരു ഐപി(IP) വിലാസം ആയി uint32 x നെ വ്യാഖ്യാനിക്കുന്നു. ഉദാഹരണത്തിനു്, ipv4addr എന്ന തരം വേരിയബിളിലേക്കു് x നൽകുന്നതു് ഒരു ടൈപ്പ് എറർ ആണ്.

സ്ഥായിയായ എക്സ്പ്രഷനുകൾ ഒന്നുകിൽ ടൈപ്പ് ചെയ്തതോ അല്ലെങ്കിൽ "ടൈപ്പ്ചെയ്യാത്തതോ" ആയിരിക്കും; അവർ പ്രതിനിധാനം ചെയ്യുന്ന മൂല്യം ഒരു കംപൈൽ-ടൈം പരിശോധനയിലൂടെ കടന്നുപോകുമ്പോൾ ടൈപ്പ് ചെയ്ത ഒരു വേരിയബിളിന് നിയുക്തമാകുമ്പോൾ അവർക്ക് ഒരു മാതൃക നൽകിയിരിക്കുന്നു.

codice_10 കീവേഡ് വഴി; ഫങ്ഷൻ തരങ്ങൾ സൂചിപ്പിച്ചിരിക്കുന്നു അവർ പൂജ്യമോ കൂടുതൽ പരാമീറ്ററുകളോ എടുക്കുകയും പൂജ്യം അല്ലെങ്കിൽ കൂടുതൽ മൂല്യങ്ങൾ തിരികെ നൽകുകയും ചെയ്യുന്നു, എല്ലാം ടൈപ്പ് ചെയ്തു. പരാമീറ്ററും റിട്ടേൺ മൂല്ല്യങ്ങളും ഒരു ഫംഗ്ഷൻ തരം നിർണ്ണയിക്കുന്നു; അങ്ങനെ, codice_11 codice_12 ഒരു സ്ട്രിംഗ് എടുക്കുന്ന ഫങ്ഷനുകളുടെ തരം, ഒരു 32-ബിറ്റ് സൈൻഡ് സംഖ്യ, സൈൻഡ് പൂർണ്ണസംഖ്യ തിരികെ നൽകുന്നു (സ്ഥിരമായ വീതിയുടെ) ബിൽറ്റ്-ഇൻ ഇന്റർഫെയിസ് ടൈപ്പ് ,codice_13 എന്നിവയുടെ മൂല്യത്തിലൂടെ.

ഏതെങ്കിലും പേരുള്ള ടൈപ്പിന് ഒരു രീതി ഉണ്ട്. മുകളിലുള്ള ഐപി(IP)വിലാസത്തിലുള്ള ഉദാഹരണം അതിന്റെ മൂല്യം അറിയപ്പെടുന്ന നിലവാരമാണോ എന്ന് പരിശോധിക്കുന്നതിനായി ഒരു രീതി ഉപയോഗിച്ച് വിപുലീകരിക്കാം.

// ZeroBroadcast reports whether addr is 255.255.255.255.
func (addr ipv4addr) ZeroBroadcast() bool {

നാമമാത്ര ടൈപ്പിങ് കാരണം, ipv4addr- ലേക്കു് ഈ രീതി വിശദീകരിയ്ക്കുന്നു, പക്ഷേ uint32- ൽ അല്ല. എന്നാലും മെത്തേഡിന് പ്രത്യേക നിർവ്വചനവും കോൾ സിന്റാക്സും ഉണ്ടെങ്കിലും, വ്യത്യസ്തമായ മെത്തേഡ് ഇല്ല.
തരങ്ങൾ
റേസിംഗ് കണ്ടീഷൻ സുരക്ഷയുടെ അഭാവം
സമാന്തര പ്രോഗ്രാമിംഗിനുള്ള അനുയോജ്യത
നടപ്പിലാക്കൽ