123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- // Copyright 2013 com authors
- //
- // Licensed under the Apache License, Version 2.0 (the "License"): you may
- // not use this file except in compliance with the License. You may obtain
- // a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- // License for the specific language governing permissions and limitations
- // under the License.
- package com
- import (
- "strings"
- )
- // AppendStr appends string to slice with no duplicates.
- func AppendStr(strs []string, str string) []string {
- for _, s := range strs {
- if s == str {
- return strs
- }
- }
- return append(strs, str)
- }
- // CompareSliceStr compares two 'string' type slices.
- // It returns true if elements and order are both the same.
- func CompareSliceStr(s1, s2 []string) bool {
- if len(s1) != len(s2) {
- return false
- }
- for i := range s1 {
- if s1[i] != s2[i] {
- return false
- }
- }
- return true
- }
- // CompareSliceStr compares two 'string' type slices.
- // It returns true if elements are the same, and ignores the order.
- func CompareSliceStrU(s1, s2 []string) bool {
- if len(s1) != len(s2) {
- return false
- }
- for i := range s1 {
- for j := len(s2) - 1; j >= 0; j-- {
- if s1[i] == s2[j] {
- s2 = append(s2[:j], s2[j+1:]...)
- break
- }
- }
- }
- if len(s2) > 0 {
- return false
- }
- return true
- }
- // IsSliceContainsStr returns true if the string exists in given slice, ignore case.
- func IsSliceContainsStr(sl []string, str string) bool {
- str = strings.ToLower(str)
- for _, s := range sl {
- if strings.ToLower(s) == str {
- return true
- }
- }
- return false
- }
- // IsSliceContainsInt64 returns true if the int64 exists in given slice.
- func IsSliceContainsInt64(sl []int64, i int64) bool {
- for _, s := range sl {
- if s == i {
- return true
- }
- }
- return false
- }
|