github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/internal/util/to_lower.go (about)

     1  package util
     2  
     3  // ToLower 返回字符串对应的小写版本.
     4  //
     5  //	如果确定 s 是[a-zA-Z0-9_-] 的组合, 那么可以用这个函数, 否则请用 strings.ToLower!
     6  func ToLower(s string) string {
     7  	var b []byte
     8  	for i := 0; i < len(s); i++ {
     9  		c := s[i]
    10  		if c > 'Z' || c < 'A' {
    11  			if b != nil {
    12  				b[i] = c
    13  			}
    14  		} else {
    15  			c += 'a' - 'A'
    16  			if b == nil {
    17  				b = make([]byte, len(s))
    18  				copy(b, s[:i])
    19  			}
    20  			b[i] = c
    21  		}
    22  	}
    23  	if b != nil {
    24  		return string(b)
    25  	}
    26  	return s
    27  }