Библиотека предоставляет удобный интерфейс для работы с различными единицами измерения и их преобразованиями.
-
Поддержка различных типов величин:
- Длина (Length)
- Вес (Weight)
- Штуки (Things)
- Комплекты (Set)
- Упаковки (Package)
- Бухты (Bay)
-
Поддержка префиксов СИ:
- Нано (10⁻⁹)
- Микро (10⁻⁶)
- Милли (10⁻³)
- Нормальный (1)
- Кило (10³)
- Мега (10⁶)
- Гига (10⁹)
-
Арифметические операции:
- Сложение (Add)
- Вычитание (Sub)
- Умножение (Mul)
- Деление (Div)
-
Форматирование:
- Настраиваемое количество знаков после запятой
- Автоматическое округление
- Поддержка отрицательных значений
- Вывод с единицами измерения
// Создание величин
l1 := units.NewLength(5, units.Kilo) // 5 километров
l2 := units.NewLength(300, units.Normal) // 300 метров
// Арифметические операции
sum := l1.Add(l2) // 5.3 километров
diff := l1.Sub(l2) // 4.7 километров
// Изменение префикса
sum.SetPrefix(units.Mega) // 0.0053 мегаметров
// Форматирование
sum.SetDecimals(3) // установка 3 знаков после запятой
fmt.Println(sum.String()) // вывод отформатированного значения
- Внутреннее хранение значений в базовых единицах
- Автоматическая конвертация между префиксами
- Проверка совместимости типов при операциях
- Контроль ошибок через флаг Ok()
- Поддержка пользовательских единиц измерения
- Потокобезопасность операций
- Эффективное использование памяти
Библиотека может использоваться в различных областях:
- Инженерные расчеты
- Научные вычисления
- Складской учет
- Торговые операции
- Производственные системы
- Метрологические системы
- Конвертация единиц измерения
.
├── cmd/
│ └── main.go # Примеры использования
├── bay.go # Реализация типа Bay (бухты)
├── go.mod # Описание модуля
├── package.go # Реализация типа Package (упаковки)
├── prefix.go # Определение префиксов СИ
├── quantity.go # Основной интерфейс и базовая реализация
├── set.go # Реализация типа Set (комплекты)
└── weight.go # Реализация типа Weight (вес)
MIT