getting deeper with slices, empty slice vs nil slice | len() and cap() etc..

This commit is contained in:
2026-09-09 00:15:16 -04:00
parent 662e044c2c
commit dd7e213077
6 changed files with 40 additions and 1 deletions
+3
View File
@@ -0,0 +1,3 @@
module main
go 1.27.0
+35
View File
@@ -0,0 +1,35 @@
package main
import (
"fmt"
)
func main() {
var s []int
t := []int{}
u := make([]string, 5)
v := make([]string, 0, 5)
fmt.Printf("%d, %d, %T, %5t, %#[3]v\n", len(s), cap(s), s, s == nil)
fmt.Printf("%d, %d, %T, %5t, %#[3]v\n", len(t), cap(t), t, t == nil)
fmt.Printf("%d, %d, %T, %5t, %#[3]v\n", len(u), cap(u), u, u == nil)
fmt.Printf("%d, %d, %T, %5t, %#[3]v\n", len(v), cap(v), v, v == nil)
s = append(s, 1, 1)
fmt.Printf("%d, %d, %T, %5t, %#[3]v\n", len(s), cap(s), s, s == nil)
fmt.Println("*****************************")
fmt.Println("*****************************")
fmt.Println("*****************************")
fmt.Println("*****************************")
fmt.Println("*****************************")
a := [...]int{1, 2, 3}
b := a[:1]
c := b[:2]
fmt.Printf("a[%p] = %v\n", &a, a)
fmt.Printf("b[%p] = %[1]v\n", b)
fmt.Printf("c[%p] = %[1]v\n", c)
}