initial commit

This commit is contained in:
specCon18 2023-12-18 03:40:05 -05:00
commit 493ce92e02
62 changed files with 1213 additions and 0 deletions

57
maps/maps.go Normal file
View file

@ -0,0 +1,57 @@
package main
import (
"fmt"
"maps"
)
func main() {
// to create an empty map, use the builtin make:
// make(map[key-type]val-type)
m := make(map[string]int)
//set key/value pairs using typical name[key] = val syntax
m["k1"] = 7
m["k2"] = 13
// printing a map with e.g.
// fmt.Println will show all of its key/value pairs
fmt.Println("map:",m)
// Get a value from a key with name[key]
// if the key doesn't exist the zero value of the value type is returned
v1 := m["k1"]
fmt.Println("v1:",v1)
v3 := m["k3"]
fmt.Println("v3:",v3)
//the builtin len returns the number of key/value pairs when called on a map
fmt.Println("len:", len(m))
//the builtin delete removes key/value pairs from a map,
//use the clear builtin to remove all key/value pairs from a map.
delete(m, "k2")
fmt.Println("map:",m)
clear(m)
fmt.Println("map:",m)
// the optional second return value when getting the value
// from a map indicates if the key was present in the map allowing
// to diferentiate between default zero-values and values acutally stored as 0
// here we dont need the value itself so we ignore it with the _ or blank identifier
_, prs := m["k2"]
fmt.Println("prs:",prs)
//you can declare and initalize a new map in the same line with the following syntax:
n := map[string]int{"foo": 1,"bar": 2}
fmt.Println("map:", n)
//the map package also contains useful funcs for map such as .Equal
n2 := map[string]int{"foo": 1,"bar":2}
if maps.Equal(n,n2){
fmt.Println("n == n2")
}
}