• В стандартной библиотеке go есть ли инструменты для работы с многомерными срезами/массивами?

    @545454valera Автор вопроса
    calculator212, да, знаю как сложно найти работу на го новичку. Но мне нравится он, почему не понимаю, другие языки чем-то оттолкнули. Значит буду учить всё что необходимо и пилить сам. А там надеюсь он станет чуть популярнее через года полтора и вакансий побольше будет, и либы появятся общепринятые. Дженериков то завезли, а с ними и либы запилятся с множеством всего готового
    Написано
  • В стандартной библиотеке go есть ли инструменты для работы с многомерными срезами/массивами?

    @545454valera Автор вопроса
    calculator212, но ведь питонисты и джависты изначально тоже не знают предметную область. И на джаве кажется пишут более сложные, большие приложения, а на го поменьше. Ну и конкуренция в питон бэкенд запредельная. А за ссылку спасибо. Задачу я решил кстати, помог чатгпт с ней, и разобрался как это делать, что самое главное. Правда словил депрессняк от этого, но это уже другая тема.
    Написано
  • В стандартной библиотеке go есть ли инструменты для работы с многомерными срезами/массивами?

    @545454valera Автор вопроса
    Условие звучало так:

    Дано число n, n ≤ 100 . Создайте массив n×n и заполните его по следующему правилу:
    - числа на диагонали, идущей из правого верхнего в левый нижний угол, равны 1;
    - числа, стоящие выше этой диагонали, равны 0;
    - числа, стоящие ниже этой диагонали, равны 2.

    Входные данные:

    Программа получает на вход число n.

    Выходные данные:

    Необходимо вывести полученный массив. Числа разделяйте одним пробелом.

    Sample Input:
    4
    Sample Output:
    0 0 0 1
    0 0 1 2
    0 1 2 2
    1 2 2 2

    Диагональ нарисовать смог как раз одним циклом. Далее уже от этого отталкивался и дорисовал то что ниже и выше диагонали было нужно. В итоге вышло как то так
    package main
    
    import "fmt"
    
    func main() {
    	var n int
    	fmt.Scan(&n)
    
    	matrix := make([][]int, n)
    
    	for i := range matrix {
    
    		s := make([]int, n)
    		matrix[i] = s
    
    		for j := range s {
    
    			if j < n-1-i {
    				s[j] = 0
    			} else if j > n-1-i {
    				s[j] = 2
    			} else {
    				s[j] = 1
    			}
    
    		}
    
    	}
    
    	for i := 0; i < len(matrix); i++ {
    		for j := 0; j < len(matrix[i]); j++ {
    			if j < len(matrix[i])-1 {
    				fmt.Print(matrix[i][j], " ")
    			} else {
    				fmt.Print(matrix[i][j])
    			}
    
    		}
    
    		if i < len(matrix)-1 {
    			fmt.Printf("\n")
    		}
    
    	}
    
    }


    Вот и думаю, это я тупой, или задачка не прям чтоб совсем лёгенькая
    Написано