github.com/tursom/GoCollections@v0.3.10/util/Utils.go (about)

     1  /*
     2   * Copyright (c) 2022 tursom. All rights reserved.
     3   * Use of this source code is governed by a GPL-3
     4   * license that can be found in the LICENSE file.
     5   */
     6  
     7  package util
     8  
     9  type (
    10  	Stringer struct {
    11  		stringer func() string
    12  	}
    13  )
    14  
    15  func NewStringer(stringer func() string) Stringer {
    16  	return Stringer{
    17  		stringer: stringer,
    18  	}
    19  }
    20  
    21  func (s Stringer) String() string {
    22  	if s.stringer == nil {
    23  		return "nil"
    24  	}
    25  	return s.stringer()
    26  }
    27  
    28  func Reverse[T any](s []T) []T {
    29  	for i := 0; i < len(s)/2; i++ {
    30  		temp := s[i]
    31  		s[i] = s[len(s)-i-1]
    32  		s[len(s)-i-1] = temp
    33  	}
    34  
    35  	return s
    36  }