dtelenkov 3 weken geleden
bovenliggende
commit
2195c3c135

+ 0 - 0
courses/golang_web/data_type/1/array.go → courses/golang_web/1_data_type/array.go


+ 2 - 2
courses/golang_web/data_type/1/condition.go → courses/golang_web/1_data_type/condition.go

@@ -15,8 +15,8 @@ func main() {
 		fmt.Println("name = ", keyValue)
 	}
 
-	// подучаем т`олько признак существования ключа
-	if keyValue, keyExist := mapVal["name"]; keyExist {
+	// подучаем только признак существования ключа
+	if _, keyExist := mapVal["name"]; keyExist {
 		fmt.Println("key 'name' exist")
 	}
 

+ 0 - 0
courses/golang_web/data_type/1/const.go → courses/golang_web/1_data_type/const.go


+ 7 - 0
courses/golang_web/1_data_type/data_map.txt

@@ -0,0 +1,7 @@
+1
+2
+4
+4
+4
+6
+8

+ 0 - 0
courses/golang_web/data_type/1/func_1.go → courses/golang_web/1_data_type/func_1.go


+ 9 - 3
courses/golang_web/data_type/1/func_2.go → courses/golang_web/1_data_type/func_2.go

@@ -22,11 +22,17 @@ func main() {
 		callback("as callback")
 	}
 	worker(printer)
-
-	// функция возвращает замыкание
+	/*
+		// функция возвращает замыкание
+		prefixer := func(prefix string) strFuncType {
+			return func(in string) {
+				fmt.Printf("[%s] %s]\n", prefix, in)
+			}
+		}
+	*/
 	prefixer := func(prefix string) strFuncType {
 		return func(in string) {
-			fmt.Printf("[%s] %s]\n", prefix, in)
+			fmt.Printf("[%s] %s\n", prefix, in)
 		}
 	}
 

+ 3 - 0
courses/golang_web/data_type/1/func_3.go → courses/golang_web/1_data_type/func_3.go

@@ -2,6 +2,9 @@ package main
 
 import "fmt"
 
+// Существует отложенное выполнение функции
+// Удобно при закрытии какого-либо ресурса
+
 /*
 func getSomeVars() string {
 	fmt.Println("getSomeVars execution")

+ 0 - 0
courses/golang_web/data_type/1/loop.go → courses/golang_web/1_data_type/loop.go


+ 0 - 0
courses/golang_web/data_type/1/map.go → courses/golang_web/1_data_type/map.go


+ 0 - 0
courses/golang_web/data_type/1/method.go → courses/golang_web/1_data_type/method.go


+ 0 - 0
courses/golang_web/data_type/1/pointer.go → courses/golang_web/1_data_type/pointer.go


+ 4 - 0
courses/golang_web/data_type/1/slice.go → courses/golang_web/1_data_type/slice.go

@@ -43,6 +43,8 @@ func main() {
 }
 
 func test1() {
+	buf := []int{1, 2, 3, 4, 5}
+	fmt.Println(buf)
 	// получение среза, указывающего на ту же память
 	sl1 := buf[1:4] // [2, 3, 4]
 	sl2 := buf[:2]  // [1, 2]
@@ -80,7 +82,9 @@ func test1() {
 	fmt.Println(newBuf)
 
 	// можно копировать в часть существующего слайса
+	fmt.Println("Копирование в часть слайса:")
 	ints := []int{1, 2, 3, 4}
+	fmt.Println(ints)
 	copy(ints[1:3], []int{5, 6}) // ints = [1, 5, 6, 4]
 	fmt.Println(ints)
 }

+ 0 - 0
courses/golang_web/data_type/1/string.go → courses/golang_web/1_data_type/string.go


+ 0 - 0
courses/golang_web/data_type/1/struct.go → courses/golang_web/1_data_type/struct.go


+ 50 - 0
courses/golang_web/1_data_type/task_1/main.go

@@ -0,0 +1,50 @@
+package main
+
+import (
+	"bufio"
+	"fmt"
+	"io"
+	"os"
+)
+
+func withMap() {
+	in := bufio.NewScanner(os.Stdin)
+	alreadySeen := make(map[string]bool)
+	for in.Scan() {
+		txt := in.Text()
+
+		if _, found := alreadySeen[txt]; found {
+			continue
+		}
+		alreadySeen[txt] = true
+		fmt.Println(txt)
+	}
+
+}
+
+func uniq(input io.Reader, output io.Writer) error {
+	in := bufio.NewScanner(input)
+	var prev string
+	for in.Scan() {
+		txt := in.Text()
+		if txt == prev {
+			continue
+		}
+
+		if txt < prev {
+			return fmt.Errorf("file not sorted")
+		}
+
+		prev = txt
+
+		fmt.Fprintln(output, txt)
+	}
+	return nil
+}
+
+func main() {
+	err := uniq(os.Stdin, os.Stdout)
+	if err != nil {
+		panic(err.Error())
+	}
+}

+ 25 - 0
courses/golang_web/1_data_type/task_1/main_test.go

@@ -0,0 +1,25 @@
+package main
+
+import (
+	"strings"
+	"bytes"
+	"testing"
+)
+
+var TestOk := `1
+2
+3
+3
+4
+5`
+
+func TestOk(t *testing.T) {
+
+	in := bufio.NewReader(strings.NewReader(testOk))
+	out := new
+	err := uniq(in)
+	if err != nil {
+		t.Errorf("test for OK Failed")
+
+	}
+}

+ 0 - 0
courses/golang_web/data_type/1/typedef.go → courses/golang_web/1_data_type/typedef.go


+ 0 - 0
courses/golang_web/data_type/1/vars.go → courses/golang_web/1_data_type/vars.go