ranger

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2023 License: Apache-2.0 Imports: 2 Imported by: 0

README

ranger

Generate number ranges from given numbers.

For example: 1,2,3,5 generates 1-3,5-5.

Example

package main

import (
	"fmt"
	"github.com/raspi/ranger"
)

func main() {
	r := []int8{-1, 0, 1, 3, 4, 5, 10, 11, 12, 13, 14, 15, 20, 30, 21, 25, 24, 21}

	ranges, err := ranger.GetIntegerRanges(r)
	if err != nil {
		panic(err)
	}

	for _, r := range ranges {
		fmt.Printf(`%v - %v`+"\n", r.Start, r.End)
	}
}

Outputs:

-1 - 1
3 - 5
10 - 15
20 - 21
24 - 25
30 - 30

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Number

type Number interface {
	constraints.Integer
}

type Range

type Range[T Number] struct {
	Start T
	End   T
}

func GetIntegerRanges

func GetIntegerRanges[T Number](nums []T) (res []Range[T], err error)

GetIntegerRanges generates a list of ranges found when given a list of integers. Duplicate integers are removed. Integers are sorted before generation.

For example {1, 2, 3} returns []{Range{ Start:1, End:3 }}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL