/
Praxis/

Структура Bank

Ты строишь валидатор кредитных карт. Прежде чем проверять карты, нужно где-то хранить информацию о банках-эмитентах: название банка и характерные первые цифры его карт. Каждый банк выпускает карты с определёнными начальными цифрами — это и есть наш способ узнать, какой банк выдал карту.

Этот этап и два следующих ты пройдёшь прямо в браузере — 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"}, }

Полезные материалы

  • Structs — интерактивный туториал
  • Slice literals — синтаксис литералов
  • Структуры в Go — на русском
Cmd/Ctrl+Enter запускает проверку

Критерии

не проверялось
  • Объявлен тип Bank struct с полями Name string и Prefix string
  • Объявлена переменная banks типа []Bank
  • В banks как минимум три записи, у каждой непустые Name и Prefix
Войдите в аккаунт, чтобы начать проект
Запустите первую проверку