master > master: codego fügte funktionen utils hinzu
This commit is contained in:
parent
44b0ee41bf
commit
100701d610
@ -1,23 +1,39 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
/* ---------------------------------------------------------------- *
|
||||
* EXPORTS
|
||||
* METHODS: json
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
func StrListContains(list []string, x string) bool {
|
||||
for _, obj := range list {
|
||||
if obj == x {
|
||||
return true
|
||||
func JsonToArrayOfStrings(s string, value *[]string) {
|
||||
var err error
|
||||
err = json.Unmarshal([]byte(s), &value)
|
||||
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 {
|
||||
if x <= y {
|
||||
return x
|
||||
@ -32,6 +48,49 @@ func Max2(x int, y int) int {
|
||||
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) {
|
||||
sort.Slice(*list, func(i int, j int) bool {
|
||||
u := strings.ToLower((*list)[i])
|
||||
@ -68,6 +127,7 @@ func UnionStrings2(list1 []string, list2 []string) []string {
|
||||
return list
|
||||
}
|
||||
|
||||
// assumes that listTo contains no duplicates
|
||||
func UnionStringsTo(listTo *[]string, listFrom []string) {
|
||||
var mark = make(map[string]bool)
|
||||
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