4.9 KiB
API Reference
Complete API documentation for the Poindexter library.
Core Functions
Version
func Version() string
Returns the current version of the library.
Returns:
string: The version string (e.g., "0.1.0")
Example:
version := poindexter.Version()
fmt.Println(version) // Output: 0.1.0
Hello
func Hello(name string) string
Returns a greeting message.
Parameters:
name(string): The name to greet. If empty, defaults to "World"
Returns:
string: A greeting message
Examples:
// Greet the world
message := poindexter.Hello("")
fmt.Println(message) // Output: Hello, World!
// Greet a specific person
message = poindexter.Hello("Alice")
fmt.Println(message) // Output: Hello, Alice!
Sorting Functions
Basic Sorting
SortInts
func SortInts(data []int)
Sorts a slice of integers in ascending order in place.
Example:
numbers := []int{3, 1, 4, 1, 5, 9}
poindexter.SortInts(numbers)
fmt.Println(numbers) // Output: [1 1 3 4 5 9]
SortIntsDescending
func SortIntsDescending(data []int)
Sorts a slice of integers in descending order in place.
Example:
numbers := []int{3, 1, 4, 1, 5, 9}
poindexter.SortIntsDescending(numbers)
fmt.Println(numbers) // Output: [9 5 4 3 1 1]
SortStrings
func SortStrings(data []string)
Sorts a slice of strings in ascending order in place.
Example:
words := []string{"banana", "apple", "cherry"}
poindexter.SortStrings(words)
fmt.Println(words) // Output: [apple banana cherry]
SortStringsDescending
func SortStringsDescending(data []string)
Sorts a slice of strings in descending order in place.
SortFloat64s
func SortFloat64s(data []float64)
Sorts a slice of float64 values in ascending order in place.
SortFloat64sDescending
func SortFloat64sDescending(data []float64)
Sorts a slice of float64 values in descending order in place.
Advanced Sorting
SortBy
func SortBy[T any](data []T, less func(i, j int) bool)
Sorts a slice using a custom comparison function.
Parameters:
data: The slice to sortless: A function that returns true if data[i] should come before data[j]
Example:
type Person struct {
Name string
Age int
}
people := []Person{
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35},
}
// Sort by age
poindexter.SortBy(people, func(i, j int) bool {
return people[i].Age < people[j].Age
})
// Result: [Bob(25) Alice(30) Charlie(35)]
SortByKey
func SortByKey[T any, K int | float64 | string](data []T, key func(T) K)
Sorts a slice by extracting a comparable key from each element in ascending order.
Parameters:
data: The slice to sortkey: A function that extracts a sortable key from each element
Example:
type Product struct {
Name string
Price float64
}
products := []Product{
{"Apple", 1.50},
{"Banana", 0.75},
{"Cherry", 3.00},
}
// Sort by price
poindexter.SortByKey(products, func(p Product) float64 {
return p.Price
})
// Result: [Banana(0.75) Apple(1.50) Cherry(3.00)]
SortByKeyDescending
func SortByKeyDescending[T any, K int | float64 | string](data []T, key func(T) K)
Sorts a slice by extracting a comparable key from each element in descending order.
Example:
type Student struct {
Name string
Score int
}
students := []Student{
{"Alice", 85},
{"Bob", 92},
{"Charlie", 78},
}
// Sort by score descending
poindexter.SortByKeyDescending(students, func(s Student) int {
return s.Score
})
// Result: [Bob(92) Alice(85) Charlie(78)]
Checking if Sorted
IsSorted
func IsSorted(data []int) bool
Checks if a slice of integers is sorted in ascending order.
IsSortedStrings
func IsSortedStrings(data []string) bool
Checks if a slice of strings is sorted in ascending order.
IsSortedFloat64s
func IsSortedFloat64s(data []float64) bool
Checks if a slice of float64 values is sorted in ascending order.
Binary Search
BinarySearch
func BinarySearch(data []int, target int) int
Performs a binary search on a sorted slice of integers.
Parameters:
data: A sorted slice of integerstarget: The value to search for
Returns:
int: The index where target is found, or -1 if not found
Example:
numbers := []int{1, 3, 5, 7, 9, 11}
index := poindexter.BinarySearch(numbers, 7)
fmt.Println(index) // Output: 3
BinarySearchStrings
func BinarySearchStrings(data []string, target string) int
Performs a binary search on a sorted slice of strings.
Parameters:
data: A sorted slice of stringstarget: The value to search for
Returns:
int: The index where target is found, or -1 if not found