The official text (English) is here

Go to 1.0

2012-03-28

  1. New append function
  2. Add close function
  3. Update compound literals
  4. Init is now ready to run coroutines
  5. The new type rune is used to represent Unicode code points
  6. New type error
  7. The delete function replaces the previous delete syntax
  8. Map iterations are unpredictable, even on the same machine
  9. Redefined multiple assignmentA, b = 1, 2The specific behavior of
  10. Return Shadowed Value is disabled
  11. Allows copying structs containing unexported fields
  12. Structs and arrays can now be compared and therefore used as map keys; Func can’t be compared; Whether Slice can be compared remains uncertain.

Go to 1.1

2013-05-13

  1. x/0A run-time panic has been changed to a compil-time error.
  2. Methods are introduced
  3. In some cases return can be omitted
  4. Unicode characters with code points greater than 65535 are compatible
  5. When cross-compiling, go disables CGO by default, which can be enabled using the CGO_ENABLED=1 environment variable

Go to 1.2

2013-12-01

  1. Enhanced checking of code that uses nil
  2. New grammarslice = array[2:4:7], 7 indicates the capacity
  3. The scheduler supports pre-emption
  4. Limit the maximum number of threads. Default is 10000
  5. The minimum size of the coroutine stack has been increased from 4KB to 8KB. The maximum size can be set using setMaxStack. The default is 1GB(64bit) / 250MB(32bit).
  6. go docgodoc .replace

Go to 1.3

2014-06-18

  1. The implementation of the stack of coroutines has been modified from fragment model to continuous model. When a coroutine needs a larger stack, it uses a larger block of memory (rather than segments).
  2. There is no longer a fixed order for traversing small maps.

Go to 1.4

2014-12-10

  1. Allows for range syntax:for range x { }
  2. x.M()The type of x is theta**TError reporting (not reported before)
  3. Rewrite runtime with Go (previously C) so GC can detect all active Pointers in the program

Go to 1.5

2015-08-19

  1. Compiler and Runtime are implemented entirely by Go (plus a bit of assembly)
  2. GC supports concurrency, which reduces outage times
  3. GOMAXPROCS defaults to the number of CPU cores, the previous default was 1
  4. Support for internal packages
  5. Support for Vendoring (test characteristics)
  6. Map keys now support abbreviations:
    m := map[Point]string{{29.935523.52.891566} :"Persepolis".// key does not write Point
        {25.352594.131.034361} :"Uluru",
        {37.422455.122.084306} :"Googleplex",}Copy the code
  7. To supportgo docThe command

GO to 1.6

2016-02-17

  1. The language itself has not changed at all
  2. Added support for HTTP/2

Go to 1.7

2016-08-15

  1. The language itself has barely changed

Go to 1.8

2017-02-16

  1. Two structs that differ only in tag can be converted to each other
  2. The trace tool supports the -pprof option

Go to 1.9

2017-08-24

  1. Support for type aliasestype T1 = T2To facilitate code refactoring, etc

Go to 1.10

2018-02-16

  1. The language itself has not changed at all

Go to 1.11

2018-08-24

  1. The language itself has not changed at all
  2. With module support, developers no longer need to write code in GOPATH

Go to 1.12

2019-02-25

  1. The language itself has not changed at all
  2. supportGO111MODULEThe environment variable
  3. go tool vetgo vetreplace
  4. go tool tourYou need to install it yourself

Go to 1.13

2019-09-03

  1. New numeric literals
    1. 0b1011 is a binary integer
    2. 0o660 represents an octal integer
    3. 0x1.0P-1021 represents a hexadecimal floating point number
    4. The imaginary symbol I can be used with any integer or floating-point number
    5. 1 _000_000 legally
  2. GO111MODULEThe default is auto
  3. supportGOPROXYGOSUMDB
  4. go getThe -u parameter is supported. The -m parameter is cancelled. -u only updates non-test dependencies in the current mudle. Adding -t updates test dependencies.

Go to 1.14

2020-02-25

  1. Two interfaces with the same properties can now be embedded in the same interface.

Go to 1.15

2020-08-11

  1. The language itself has not changed at all
  2. GOPROXY automatically skips proxies that have errors

Go to 1.16

2021-02-16

  1. The language itself has not changed at all
  2. go installSupported version suffixes@ v1.0.0
  3. This can be supported through embed packages//go:embedinstruction

Go to 1.17

2021-08-16

  1. Slice can now be converted to array pointer.
  2. newunsafe.Addunsafe.Slice