modulepackage
0.2.1
Repository: https://github.com/laijunbin/go-solve-kit.git
Documentation: pkg.go.dev
# README
Go-Solve-Kit
Designed specifically for programming problem solving.
It's like VB LINQ, JavaScript array Function ... more.
Install
$ go get github.com/laijunbin/go-solve-kit
Import
import (
sk "github.com/laijunbin/go-solve-kit"
)
Example
Example 1: two number sum.
func main() {
sum := sk.LineInput().Split(" ")[:2].ToIntArray().Sum()
fmt.Println(sum)
}
Example 2:
func main() {
nums := []int {1, 2, 3, 4, 5}
output := sk.FromIntArray(nums).Map(func(v sk.Int, _ int) interface{} {
return v * v
}).Filter(func(v sk.Type, _ int) bool {
return v.ToInt() % 2 == 0
}).ToStringArray().Join("\n")
fmt.Println(output)
}
Output:
4
16
Example 3:
func main() {
array2D := sk.NewArray(5).Map(func(_ sk.Type, i int) interface{} {
return sk.NewRange(1, 5, 2).Map(func(v sk.Int, j int) interface{} {
return v.ValueOf() * i
})
})
fmt.Println(array2D)
fmt.Println(array2D.Get(2, 2).ToInt())
fmt.Println(array2D.Get(4, 1).ToInt())
fmt.Println("-------------------")
fmt.Println(array2D)
fmt.Println(array2D.Length())
fmt.Println(array2D.Flatten())
fmt.Println(array2D.Flatten().Length())
}
Output:
[{[{0} {0} {0}]} {[{1} {3} {5}]} {[{2} {6} {10}]} {[{3} {9} {15}]} {[{4} {12} {20}]}]
10
12
-------------------
[{[{0} {0} {0}]} {[{1} {3} {5}]} {[{2} {6} {10}]} {[{3} {9} {15}]} {[{4} {12} {20}]}]
5
[{0} {0} {0} {1} {3} {5} {2} {6} {10} {3} {9} {15} {4} {12} {20}]
15
Docs
Types
Type | Description |
---|---|
Int | A wrapper of int. |
String | A wrapper of string. |
Type | A wrapper of any type. |
IntArray | A Int array. |
StringArray | A String array. |
TypeArray | A Type array. |
Common Method
Method | Return Type | Description |
---|---|---|
NewType(v interface{}) | Type | New a type from interface. |
NewArray(size int) | TypeArray | New empty array. |
NewRange(start, end, step int) | IntArray | Generate a range IntArray. |
FromIntArray(items []int) | IntArray | From []int create IntArray. |
FromStringArray(items []string) | StringArray | From []string create StringArray. |
FromInterfaceArray(items interface{}) | TypeArray | From array of interface{} create TypeArray. |
LineInput() | String | Read a line of standard input. |
If(boolVar bool, trueVal, falseVal interface{}) | interface {} | If boolVar is true, return trueVal, otherwise return falseVal. |
Basic Type
Int
Method | Return Type | Description |
---|---|---|
ValueOf() | int | Get int value. |
ToString() | String | To String type. |
String
Method | Return Type | Description |
---|---|---|
ValueOf() | string | Get string value. |
ToInt() | Int | To Int type. |
Split(sep string) | StringArray | Separated by sep. |
Length() | Int | Get string length. |
Trim(cutset string) | String | A wrapper of strings.Trim() |
TrimSpace() | String | A wrapper of strings.TrimSpace() |
TrimLeft(prefix string) | String | A wrapper of strings.TrimPrefix() |
TrimRight(suffix string) | String | A wrapper of strings.TrimSuffix() |
IndexOf(v string) | Int | A wrapper of strings.Index() |
Contains(v string) | bool | A wrapper of strings.Contains() |
ToLower() | String | A wrapper of strings.ToLower() |
ToUpper() | String | A wrapper of strings.ToUpper() |
Type
Method | Return Type | Description |
---|---|---|
ValueOf() | interface{} | Get interface{} value. |
ToString() | String | To String type. |
ToInt() | Int | To Int type. |
ToArray() | TypeArray | To TypeArray type. (if fails, return an empty TypeArray) |
ToStringArray() | StringArray | To StringArray type. (if fails, return an empty StringArray) |
ToIntArray() | IntArray | To IntArray type. (if fails, return an empty IntArray) |
Array Type
IntArray
Method | Return Type | Description |
---|---|---|
Length() | Int | Get array length. |
Map(lambda func(v Int, i int) interface{}) | TypeArray | Same as javascript array.map() or vb LINQ Select(). |
ForEach(lambda func(v Int, i int)) | void | Same as javascript array.forEach(). |
Filter(lambda func(v Int, i int) bool) | IntArray | Same as javascript array.filter() or vb LINQ FindAll(). |
ToStringArray() | StringArray | To StringArray. |
ToTypeArray() | TypeArray | To TypeArray. |
Sum() | Int | Get the sum of the array. |
Fill(v Int) | IntArray | Same as javascript array.fill(). |
Every(lambda func(v Int, i int) bool) | bool | Same as javascript array.every(). |
Some(lambda func(v Int, i int) bool) | bool | Same as javascript array.some(). |
Contains(v int) | bool | Same as javascript array.includes() or vb collection type Contains(). |
FindIndex(lambda func(v Int, i int) bool) | Int | Same as javascript array.findIndex(). |
IndexOf(v int) | Int | Same as javascript array.indexOf() or vb collection type IndexOf(). |
Append(v int) | void | Append the item to last. |
Pop() | Int | Get last item and remove. |
Enqueue(v int) | void | Append the item to first. |
Dequeue() | Int | Get first item and remove. |
Remove(v int) | void | Remove first match item. |
First() | Int | Get first item. |
Last() | Int | Get last item. |
Sort() | void | Sort by increment. |
SortBy(lambda func(x, y Int)) | void | Sort by customize. |
Copy() | IntArray | Copy array. |
Slice(start, end int) | IntArray | Similar to javascript array.slice(), but when end = 0, it is equal to array.length |
StringArray
Method | Return Type | Description |
---|---|---|
Length() | Int | Get array length. |
Map(lambda func(s String, i int) interface{}) | TypeArray | Same as javascript array.map() or vb LINQ Select(). |
ForEach(lambda func(v String, i int)) | void | Same as javascript array.forEach(). |
Filter(lambda func(s String, i int) bool) | StringArray | Same as javascript array.filter() or vb LINQ FindAll(). |
ToIntArray() | IntArray | To IntArray. |
ToTypeArray() | TypeArray | To TypeArray. |
Join(sep string) | String | Same as javascript array.join(). |
Fill(v String) | StringArray | Same as javascript array.fill(). |
Every(lambda func(v String, i int) bool) | bool | Same as javascript array.every(). |
Some(lambda func(v String, i int) bool) | bool | Same as javascript array.some(). |
Contains(v string) | bool | Same as javascript array.includes() or vb collection type Contains(). |
FindIndex(lambda func(v String, i int) bool) | Int | Same as javascript array.findIndex(). |
IndexOf(v string) | Int | Same as javascript array.indexOf() or vb collection type IndexOf(). |
Append(v string) | void | Append the item to last. |
Pop() | String | Get last item and remove. |
Enqueue(v string) | void | Append the item to first. |
Dequeue() | String | Get first item and remove. |
Remove(v string) | void | Remove first match item. |
First() | String | Get first item. |
Last() | String | Get last item. |
Sort() | void | Sort by increment. |
SortBy(lambda func(x, y String)) | void | Sort by customize. |
Copy() | StringArray | Copy array. |
Slice(start, end int) | StringArray | Similar to javascript array.slice(), but when end = 0, it is equal to array.length |
TypeArray
Method | Return Type | Description |
---|---|---|
Length() | Int | Get array length. |
ToStringArray() | StringArray | To StringArray. |
ToIntArray() | IntArray | To IntArray. |
Map(lambda func(s Type, i int) interface{}) | TypeArray | Same as javascript array.map() or vb LINQ Select(). |
ForEach(lambda func(v Type, i int)) | void | Same as javascript array.forEach(). |
Filter(lambda func(s Type, i int) bool) | TypeArray | Same as javascript array.filter() or vb LINQ FindAll(). |
Fill(v interface{}) | TypeArray | Same as javascript array.fill(). |
Every(lambda func(v Type, i int) bool) | bool | Same as javascript array.every(). |
Some(lambda func(v Type, i int) bool) | bool | Same as javascript array.some(). |
FindIndex(lambda func(v Type, i int) bool) | Int | Same as javascript array.findIndex(). |
Sort(lambda func(x, y Type)) | void | Sort by customize. |
Get(indexes ...int) | Type | Get item by indexes. |
Flatten() | TypeArray | Same as javascript array.flat(). |
Copy() | TypeArray | Copy array. |
Slice(start, end int) | TypeArray | Similar to javascript array.slice(), but when end = 0, it is equal to array.length |
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Type aliases
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author