master > master: codego fügte funktionen utils hinzu
This commit is contained in:
parent
44b0ee41bf
commit
100701d610
@ -1,22 +1,38 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"log"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
/* ---------------------------------------------------------------- *
|
||||||
* EXPORTS
|
* METHODS: json
|
||||||
* ---------------------------------------------------------------- */
|
* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
func StrListContains(list []string, x string) bool {
|
func JsonToArrayOfStrings(s string, value *[]string) {
|
||||||
for _, obj := range list {
|
var err error
|
||||||
if obj == x {
|
err = json.Unmarshal([]byte(s), &value)
|
||||||
return true
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
|
||||||
|
/* ---------------------------------------------------------------- *
|
||||||
|
* METHODS: conversion
|
||||||
|
* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
func BoolToInt(cond bool) int {
|
||||||
|
if cond {
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- *
|
||||||
|
* METHODS: for integer lists
|
||||||
|
* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
func Min2(x int, y int) int {
|
func Min2(x int, y int) int {
|
||||||
if x <= y {
|
if x <= y {
|
||||||
@ -32,6 +48,49 @@ func Max2(x int, y int) int {
|
|||||||
return y
|
return y
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MinList(x []int) int {
|
||||||
|
var val int
|
||||||
|
if len(x) == 0 {
|
||||||
|
log.Fatal("Cannot compute the maximum of an empty array.")
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
val = x[0]
|
||||||
|
for i, val_ := range x {
|
||||||
|
if i > 0 {
|
||||||
|
val = Min2(val, val_)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|
||||||
|
func MaxList(x []int) int {
|
||||||
|
var val int
|
||||||
|
if len(x) == 0 {
|
||||||
|
log.Fatal("Cannot compute the maximum of an empty array.")
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
val = x[0]
|
||||||
|
for i, val_ := range x {
|
||||||
|
if i > 0 {
|
||||||
|
val = Max2(val, val_)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- *
|
||||||
|
* METHODS: for string lists
|
||||||
|
* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
func StrListContains(list []string, x string) bool {
|
||||||
|
for _, obj := range list {
|
||||||
|
if obj == x {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func SortStrings(list *[]string) {
|
func SortStrings(list *[]string) {
|
||||||
sort.Slice(*list, func(i int, j int) bool {
|
sort.Slice(*list, func(i int, j int) bool {
|
||||||
u := strings.ToLower((*list)[i])
|
u := strings.ToLower((*list)[i])
|
||||||
@ -68,6 +127,7 @@ func UnionStrings2(list1 []string, list2 []string) []string {
|
|||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// assumes that listTo contains no duplicates
|
||||||
func UnionStringsTo(listTo *[]string, listFrom []string) {
|
func UnionStringsTo(listTo *[]string, listFrom []string) {
|
||||||
var mark = make(map[string]bool)
|
var mark = make(map[string]bool)
|
||||||
for _, item := range listFrom {
|
for _, item := range listFrom {
|
||||||
@ -82,3 +142,11 @@ func UnionStringsTo(listTo *[]string, listFrom []string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UnionStringsList(lists [][]string) []string {
|
||||||
|
var list = []string{}
|
||||||
|
for _, list_ := range lists {
|
||||||
|
UnionStringsTo(&list, list_)
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user