From 91d4985651140385acb92ad9f7c62b788b501163 Mon Sep 17 00:00:00 2001 From: raul Date: Wed, 6 Mar 2024 18:04:34 +0100 Subject: [PATCH] Can now add to vector, still practicing channels --- golangr/goroutines/2.go | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/golangr/goroutines/2.go b/golangr/goroutines/2.go index 53785bd..6e541b0 100644 --- a/golangr/goroutines/2.go +++ b/golangr/goroutines/2.go @@ -3,6 +3,7 @@ package main import ( "fmt" "strconv" + "time" ) var numsToSum []int @@ -13,24 +14,49 @@ func getAverage() { } +func addToVec(num int, c chan int) { + numsToSum = append(numsToSum, num) +} + func statusMSG() { fmt.Printf("Current numbers: %v\n", numsToSum) fmt.Println("[1] Add number") fmt.Println("[2] Calculate average") + fmt.Println("[3] Exit") } -func fun2() { - clear() - statusMSG() +func getChoice2() { strchoice2 := scanLine() choice2, err = strconv.Atoi(strchoice2) catchErr(err) +} +func getNumToAdd() (num int) { + fmt.Printf("Select your number: ") + strnum := scanLine() + num, err = strconv.Atoi(strnum) + return num +} + +func fun2() { + c := make(chan int) looper: for { + clear() + statusMSG() + fmt.Printf("Choice: ") + getChoice2() + switch choice2 { // TODO: Add options to add numbers to array and then to calcluate them later case 1: + numToAdd := getNumToAdd() + addToVec(numToAdd, c) + fmt.Printf("Succesfully added %v to the array\n", numToAdd) + time.Sleep(time.Second) + case 2: + getAverage() + case 3: break looper } }