Skip to content

proposal: Go 2: remove map from keywords #36508

Closed
@minkofski

Description

@minkofski

Motivation

Go 1 is tightly designed with 25 keywords:

// dependency management
package import

// values
const var

// flow controls
if else break continue 
switch case default 
for range 
goto fallthrough

// function calls
func return defer

// data structures
type struct map interface

// concurrencies
go chan select

All keywords have their value and orthogonal except the map which dedicated to a hash table data structure but also share similarities array and slice, according to the language specification:

ArrayType   =       "[" ArrayLength "]" ElementType .
SliceType   =       "["             "]" ElementType .
MapType     = "map" "["   KeyType   "]" ElementType .

Comparing to these three definitions, map prefix is redundant because "[" XXX "]" ElementType . is rich enough to represent various meanings depends on the difference of XXX.

Proposal

I propose to remove map from keywords, where a Go 2 map type is:

Go2MapType = "["   KeyType   "]" ElementType .

Compatability

go fix can walk the whole program and drop all parsed map keyword from the program.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions