Проектная лаборатория

Собственный Redis

0 / 124этапов пройдено

Этап 101 · Битовые карты

Получение бита

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе вы добавите чтение бита из битовой карты командой GETBIT.

Команда GETBIT

Команда GETBIT возвращает бит по заданному смещению offset в битовой карте.

Если ключ не существует, Redis считает карту полностью нулевой и возвращает 0 для любого смещения.

Пример:

> SETBIT bit_key 2 1
(integer) 0
 
> GETBIT bit_key 2
(integer) 1
> GETBIT bit_key 3
(integer) 0
> GETBIT new_key 2
(integer) 0

Проверки

Тестирующая система запустит программу так:

$ ./your_program.sh

Затем создаст битовую карту командой SETBIT.

$ redis-cli SETBIT bit_key 2 1

Далее отправит команду GETBIT для установленного бита.

$ redis-cli GETBIT bit_key 2

Ожидаемый ответ — :1\r\n, то есть 1 в формате целого числа RESP.

Также будет отправлена команда GETBIT для неустановленного бита того же ключа.

$ redis-cli GETBIT bit_key 3

Ожидаемый ответ — :0\r\n.

Тестирующая система также отправит GETBIT для несуществующего ключа.

$ redis-cli GETBIT new_key 2

В этом случае программа тоже должна ответить :0\r\n.

Примечания

  • Вызов GETBIT со смещением за пределами текущей строки должен возвращать 0.

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init redis ./my-redis --language go

2. Откройте папку в IDE

cd ./my-redis

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage qj1

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста