Commit dd91cc4a authored by Boris Mühmer's avatar Boris Mühmer
Browse files

merged 0.1.4



Signed-off-by: default avatarBoris Mühmer <boris@muehmer.de>
parent bd258262
Loading
Loading
Loading
Loading

dataraces/dataraces.go

0 → 100644
+1 −0
Original line number Diff line number Diff line
package dataraces
+45 −0
Original line number Diff line number Diff line
package dataraces

import (
	"sync"
	"testing"
)

func TestDatarace1(t *testing.T) {
	// THIS IS WRONG
	var wg sync.WaitGroup
	wg.Add(5)
	for i := 0; i < 5; i++ {
		go func() {
			t.Logf("i: %d", i)
			wg.Done()
		}()
	}
	wg.Wait()
}
func TestDatarace2(t *testing.T) {
	// THIS IS WORKING
	var wg sync.WaitGroup
	wg.Add(5)
	for i := 0; i < 5; i++ {
		go func(n int) {
			t.Logf("i: %d", n)
			wg.Done()
		}(i)
	}
	wg.Wait()
}

func TestDatarace3(t *testing.T) {
	// THIS IS WORKING AS WELL
	var wg sync.WaitGroup
	wg.Add(5)
	for i := 0; i < 5; i++ {
		n := i
		go func() {
			t.Logf("i: %d", n)
			wg.Done()
		}()
	}
	wg.Wait()
}
+1 −0
Original line number Diff line number Diff line
package dynamictypes
+39 −0
Original line number Diff line number Diff line
package dynamictypes

import "testing"

func TestDynamicTypes(t *testing.T) {
	for _, v := range []interface{}{
		42,
		3.1415926,
		"Hello, World!",
		'€',
		3 + 2i,
	} {
		//t.Logf("%v", v)
		switch v.(type) {
		case int:
			t.Logf("int: %d", v)
		case float64:
			t.Logf("float64: %f", v)
		case string:
			t.Logf("string: %q", v)
		default:
			t.Logf("%t: %f", v, v)
		}
	}
}

func getValue() interface{} {
	return 3 //.1415926
}

func TestAssignment(t *testing.T) {
	v := getValue()
	a, ok := v.(int)
	if ok == false {
		t.Logf("failed to convert")
	} else {
		t.Logf("%d", a)
	}
}
+2 −2
Original line number Diff line number Diff line
module repositories.muehmer.net/bsmrgo/playground

go 1.14
go 1.15

require golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073
require golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
Loading