Go Language

From NovaOrdis Knowledge Base
Revision as of 18:45, 17 August 2023 by Ovidiu (talk | contribs) (→‎Variables)
Jump to navigation Jump to search

External

Internal

Overview

Go Language Specification document defines Go as a general-purpose compiled language designed with systems programming in mind. It is statically and strongly typed and garbage-collected and has explicit support for concurrent programming. Programs are constructed from packages, whose properties allow efficient management of dependencies. The existing implementations use a traditional compile/link model to generate executable binaries.

Go declarations can be read "naturally" from left to right, which makes it easy to read.

These are several reasons to use Go:

  • It compiles fast, and it runs fast.
  • Concurrency is a fundamental part of the language and it is efficient.
  • The standard library has almost everything one needs.
  • It is a terse language and "feels" dynamically typed, but it compiles straight into machine code.
  • It has garbage collection.

Keywords

Keywords, or reserved words, can only be used to mean the thing Go expects them to mean. They cannot be used as variable names, function names, or as names of other constructs.

import TODO TODO
TODO TODO TODO
TODO TODO TODO

Variables

Also see:

Variables, Parameters, Arguments#Variable

Scoping

Type

To deplete Go Concepts - The Type System

Go is a strongly and statically typed language with no implicit conversions. This gives Go a stronger type safety than Java, which as implicit conversions, but the code reads more like Python, which has untyped variables.

Modularization

In Go, programs are constructed from packages. More details:

Go Modularization

Object Oriented Programming

Object Oriented Programming

Concurrency

Concurrency

Memory Management and Garbage Collection

Memory Management and Garbage Collection

TO DEPLETE and MERGE into THIS DOCUMENT

These are documents produced by the previous attempt. Process, merge into this document, and deplete: