Ты строишь валидатор кредитных карт. Прежде чем проверять карты, нужно где-то хранить информацию о банках-эмитентах: название банка и характерные первые цифры его карт. Каждый банк выпускает карты с определёнными начальными цифрами — это и есть наш способ узнать, какой банк выдал карту.
Этот этап и два следующих ты пройдёшь прямо в браузере — AI проверит твой код шаг за шагом. Когда базовая логика будет готова, мы перенесём её на твой компьютер и продолжим работать локально.
Когда в программе нужно сгруппировать несколько связанных значений под одним именем, в Go для этого существует struct. Вместо трёх отдельных переменных bankName, bankPrefix, … мы описываем одну структуру:
type Bank struct { Name string Prefix string }
Создать конкретный банк можно через литерал:
lunar := Bank{Name: "Lunar Bank", Prefix: "4000"}
А чтобы хранить сразу несколько банков, используется — динамический массив:
banks := []Bank{ {Name: "Lunar Bank", Prefix: "4000"}, {Name: "Mars Credit Union", Prefix: "5000"}, }
💡 Gotcha: Поля с большой буквы (
Name,Prefix) — публичные, видны из других пакетов. С маленькой — приватные, внешний код их не прочитает. Для учебного проекта всегда используй большие.
Зачем: описать, как выглядит один банк, и собрать коллекцию из нескольких банков — без этого валидатор никого не распознает.
Что делаем:
Тип Bank — структура с двумя полями:
Name (string) — название банкаPrefix (string) — первые цифры номера карты, например "4000"Переменная banks ([]Bank) — минимум три записи с непустыми Name и Prefix. Используй космическую тематику проекта: Lunar Bank (4000), Mars Credit Union (5000), Venus Express (6000), Saturn Ring Financial (7000), Jupiter Trust (8000).
AI проверяет структуру твоего кода, а не его вывод. Корректный вариант выглядит примерно так:
type Bank struct { Name string Prefix string } banks := []Bank{ {Name: "Lunar Bank", Prefix: "4000"}, {Name: "Mars Credit Union", Prefix: "5000"}, {Name: "Venus Express", Prefix: "6000"}, }
Bank struct с полями Name string и Prefix stringbanks типа []Bankbanks как минимум три записи, у каждой непустые Name и Prefix