func (s Set) HasWithPrefix(items ...string) bool {
	for _, prefix := range items {
		for k := range s {
			if strings.HasPrefix(prefix, k) {
				return true
			}
		}
	}
	return false
}
HasWithPrefix checks if at least one element of the set is the prefix of any of the passed items.
It returns false if nothing is passed.
package strset
import (
	"fmt"
	"math"
	"sort"
	"strings"
)
type Set map[string]struct{}
var _keyExists = struct{}{}
func New(ts ...string) Set {
	s := make(Set)
	s.Add(ts...)
	return s
}
func FromSlice(items []string) Set {
	return New(items...)
}
func NewWithSize(size int) Set {
	return make(Set, size)
}
func (s Set) Add(items ...string) {
	for _, item := range items {
		s[item] = _keyExists
	}
}
func (s Set) Remove(items ...string) {
	for _, item := range items {
		delete(s, item)
	}
}
func (s Set) GetOne() string {
	for item := range s {
		return item
	}
	return ""
}
func (s Set) GetOne2() (string, bool) {
	for item := range s {
		return item, true
	}
	return "", false
}
func (s Set) Pop() string {
	for item := range s {
		delete(s, item)
		return item
	}
	return ""
}
func (s Set) Pop2() (string, bool) {
	for item := range s {
		delete(s, item)
		return item, true
	}
	return "", false
}
func (s Set) Has(items ...string) bool {
	has := false
	for _, item := range items {
		if _, has = s[item]; !has {
			break
		}
	}
	return has
}