From 9f22fbafee61e28b5e29d736abc1f7aecaeb9aa9 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Sun, 13 Mar 2022 22:15:05 +0200 Subject: [PATCH] math.digits: add a convenience reverse parameter too --- vlib/math/math.v | 7 ++++++- vlib/math/math_test.v | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/vlib/math/math.v b/vlib/math/math.v index 3820999a07..6935e90b34 100644 --- a/vlib/math/math.v +++ b/vlib/math/math.v @@ -44,7 +44,8 @@ pub fn degrees(radians f64) f64 { [params] pub struct DigitParams { - base int = 10 + base int = 10 + reverse bool } // digits returns an array of the digits of n in the given base b. @@ -74,6 +75,10 @@ pub fn digits(num i64, params DigitParams) []int { n /= b } + if params.reverse { + res = res.reverse() + } + return res } diff --git a/vlib/math/math_test.v b/vlib/math/math_test.v index c306a2a31f..c44f6df937 100644 --- a/vlib/math/math_test.v +++ b/vlib/math/math_test.v @@ -914,9 +914,11 @@ fn test_lcm() { } fn test_digits() { - palindrom_digits_in_10th_base := digits(i64(1234432112344321)).reverse() + palindrom_digits_in_10th_base := digits(i64(1234432112344321)) assert palindrom_digits_in_10th_base == [1, 2, 3, 4, 4, 3, 2, 1, 1, 2, 3, 4, 4, 3, 2, 1] + assert digits(125, base: 10, reverse: true) == [1, 2, 5] + digits_in_10th_base := digits(125, base: 10).reverse() assert digits_in_10th_base == [1, 2, 5]