Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс Golang
/

Передача срезов в функцию

Golang: Передача срезов в функцию

Задание

Коммерческий опыт и Трудоустройство

Полезное

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном телеграм-сообществе
  1. Привет, Мир!
  2. Go, Go, Go
  3. Переменные
  4. Функции
  5. Логический тип
  6. Математика и числа
  7. Строки
  8. Полезные функции для строк
  9. Условные конструкции
  10. Альтернативная условная конструкция
  11. Константы
  12. Цикл For
  13. Структуры и методы в Go
  14. Генерация строк в циклах
  15. Указатели
  16. Возврат структур из функций
  17. Nil
  18. Преобразование типов
  19. Ошибки
  20. Анонимные функции (Лямбды)
  21. Массивы
  22. Срезы
  23. Цикл for и срезы
  24. Структуры в срезах
  25. Сравнение срезов
  26. Слайсы из срезов
  27. Множественные операции над слайсами
  28. Копирование срезов
  29. Передача срезов в функцию
  30. Сортировка срезов
  31. Карты
  32. Обход карт
  33. Хранение структур в картах
  34. Вложенные карты
  35. Практики использования карт
/
Программирование
/
Курс Golang
/

Передача срезов в функцию

Golang: Передача срезов в функцию

Задание

Коммерческий опыт и Трудоустройство

Полезное

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
Loading...
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

package solution

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestAddDiscount(t *testing.T) {
	tests := []struct {
		name     string
		prices   []int
		discount int
		expected []int
	}{
		{
			name:     "No discount",
			prices:   []int{100, 200},
			discount: 0,
			expected: []int{100, 200},
		},
		{
			name:     "10 percent discount",
			prices:   []int{100, 200, 300},
			discount: 10,
			expected: []int{90, 180, 270},
		},
		{
			name:     "100 percent discount",
			prices:   []int{100, 50},
			discount: 100,
			expected: []int{0, 0},
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			orig := append([]int(nil), tt.prices...) // копия для проверки
			result := AddDiscount(tt.prices, tt.discount)
			assert.Equal(t, tt.expected, result)
			assert.Equal(t, orig, tt.prices, "original slice should remain unchanged")
		})
	}
}
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →