Documentation ¶
Index ¶
- func Clean(elem any)
- func Compare[T Comparable](a, b T) (int, bool)
- func CompareAny(a, b any) (int, bool)
- func CompareOf(obj1, obj2 any) (int, bool)
- func CopyOf(elem any) any
- func EqualOf(obj1, obj2 any) bool
- func IsComparable(value any) bool
- func IsEmpty(elem any) bool
- func SliceOf[T any](elem any) []T
- func StringOf(elem any) string
- func TypeOf(value any) string
- type Cleaner
- type Comparable
- type Comparer
- type Copier
- type DoFunc
- type DualDoFunc
- type Equaler
- type EvalManyFunc
- type EvalOneFunc
- type MainFunc
- type RoutineFunc
- type Slicer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Clean ¶
func Clean(elem any)
Clean removes all the elements from the data structure by calling the Clean method if the element implements the Cleaner interface.
Parameters:
- cleaner: The data structure to clean.
func Compare ¶ added in v0.2.39
func Compare[T Comparable](a, b T) (int, bool)
Compare compares two values of the same type that implement the Comparable interface. If the values are equal, the function returns 0. If the first value is less than the second value, the function returns -1. If the first value is greater than the second value, the function returns 1.
Parameters:
- a: The first value to compare.
- b: The second value to compare.
Returns:
- int: -1 if a < b, 0 if a == b, 1 if a > b.
- bool: True if the values are comparable.
Behaviors:
- If the values are not comparable, the function returns false.
func CompareAny ¶ added in v0.2.39
Compare compares two values of the same type that implement the Comparable interface. If the values are equal, the function returns 0. If the first value is less than the second value, the function returns -1. If the first value is greater than the second value, the function returns 1.
Parameters:
- a: The first value to compare.
- b: The second value to compare.
Returns:
- int: -1 if a < b, 0 if a == b, 1 if a > b.
- bool: True if the values are comparable.
Behaviors:
- If the values are not comparable, the function returns false.
func CompareOf ¶ added in v0.2.39
CompareOf compares two objects of the same type. If any of the objects implements the Comparer interface, the Compare method is called. Otherwise, the objects are compared using the < and == operators.
Parameters:
- obj1: The first object to compare.
- obj2: The second object to compare.
Returns:
- int: The result of the comparison.
func CopyOf ¶
CopyOf creates a copy of the element by either calling the Copy method if the element implements the Copier interface or returning the element as is.
Parameters:
- elem: The element to copy.
Returns:
- any: A copy of the element.
func EqualOf ¶
EqualOf compares two objects of the same type. If any of the objects implements the Equaler interface, the Equals method is called. Otherwise, the objects are compared using the == operator. However, obj1 is always checked first.
Parameters:
- obj1: The first object to compare.
- obj2: The second object to compare.
Returns:
- bool: True if the objects are equal, false otherwise.
Behaviors:
- Nil objects are always considered different.
func IsComparable ¶ added in v0.2.43
IsComparable returns true if the value is comparable with other values of the same type using the < and > operators or the Comparable interface.
Parameters:
- value: The value to check.
Returns:
- bool: True if the value is comparable, false otherwise.
func IsEmpty ¶ added in v0.2.43
IsEmpty returns true if the element is empty.
Parameters:
- elem: The element to check.
Returns:
- bool: True if the element is empty, false otherwise.
func SliceOf ¶
SliceOf converts any type to a slice of elements of the same type.
Parameters:
- elem: The element to convert to a slice.
Returns:
- []T: The slice representation of the element.
Behaviors:
- Nil elements are converted to nil slices.
- Slice elements are returned as is.
- Slicer elements have their Slice method called.
- Other elements are converted to slices containing a single element.
func StringOf ¶
StringOf converts any type to a string.
Parameters:
- elem: The element to convert to a string.
Returns:
- string: The string representation of the element.
Behaviors:
- String elements are returned as is.
- fmt.Stringer elements have their String method called.
- error elements have their Error method called.
- []byte and []rune elements are converted to strings.
- Other elements are converted to strings using fmt.Sprintf and the %v format.
Types ¶
type Cleaner ¶
type Cleaner interface {
// Clean removes all the elements from the data structure.
Clean()
}
Cleaner is an interface that provides a method to remove all the elements from a data structure.
type Comparable ¶
type Comparable interface { ~int | ~int8 | ~int16 | ~int32 | ~int64 | ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~float32 | ~float64 | ~string }
Comparable is an interface that defines the behavior of a type that can be compared with other values of the same type using the < and > operators. The interface is implemented by the built-in types int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64, and string.
type Comparer ¶ added in v0.2.39
type Comparer[T any] interface { // Compare returns a negative value if the object is less than the other object, // zero if they are equal, and a positive value if the object is greater // than the other object. // // Parameters: // - other: The other object to compare to. // // Returns: // - int: The result of the comparison. Compare(other T) int }
Comparer is an interface that defines a method to compare two objects of the same type.
type Copier ¶
type Copier interface { // Copy creates a shallow copy of the object. // // Returns: // - Copier: A shallow copy or a deep copy of the object. Copy() Copier }
Copier is an interface that provides a method to create a deep copy of an object.
type DoFunc ¶
type DoFunc[T any] func(T)
DoFunc is a generic type that represents a function that takes a value and does something with it.
Parameters:
- T: The type of the value.
type DualDoFunc ¶
DualDoFunc is a generic type that represents a function that takes two values and does something with them.
Parameters:
- T: The type of the first value.
- U: The type of the second value.
type Equaler ¶
type Equaler[T any] interface { // Equals returns true if the object is equal to the other object. // // Parameters: // - other: The other object to compare to. // // Returns: // - bool: True if the object is equal to the other object. Equals(other T) bool }
Equaler is an interface that defines a method to compare two objects of the same type.
type EvalManyFunc ¶ added in v0.2.38
EvalManyFunc is a function that evaluates many elements.
Parameters:
- elem: The element to evaluate.
Returns:
- []R: The results of the evaluation.
- error: An error if the evaluation failed.
type EvalOneFunc ¶ added in v0.2.38
EvalOneFunc is a function that evaluates one element.
Parameters:
- elem: The element to evaluate.
Returns:
- R: The result of the evaluation.
- error: An error if the evaluation failed.
type MainFunc ¶ added in v0.2.39
type MainFunc func() error
MainFunc is a function type that takes no parameters and returns an error. It is used to represent things such as the main function of a program.
Returns:
- error: An error if the function failed.
type RoutineFunc ¶ added in v0.2.39
type RoutineFunc func()
Routine is a function type used to represent a go routine.