package
1.3.2
Repository: https://github.com/thinkeridea/go-extend.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# Functions

Replace 思路来源于 bytes.Replace,bytes.Replace 总是返回 s 的副本, 有些场景源数据生命周期非常短,且可以原地替换,如果这么实现可以减少极大的内存分配。 len(old) >= len(new) 会执行原地替换,这回浪费一部分空间,但是会减少内存分配, 建议输入生命周期较短的数据, len(old) < len(new) 会调用 bytes.Replace 并返回一个替换后的副本。 最佳实践是使用 Replace 的结果覆盖源变量,避免再次对源数据引用,导致访问过时的数据,并且数据内容错乱,如下: var s []byte s = exbytes.Replace(s, []byte(" "), []byte(""), -1) 关于字符串可以结合 exstrings.UnsafeToBytes 来实现,要避免常量字符串和字面量字符串,否者会产生运行时错误。 */.
Reverse 原地反转 []byte.
Sub 是 exutf8.RuneSub 的别名,提供字符数量截取字节数组的方法,针对多字节字符安全高效的截取 如果 start 是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。 如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。 如果 string 的长度小于 start,将返回空字符串。 如果提供了正数的 length,返回的字符串将从 start 处开始最多包括 length 个字符(取决于 string 的长度)。 如果提供了负数的 length,那么 string 末尾处的 length 个字符将会被省略(若 start 是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回空字符串。 如果提供了值为 0 的 length,返回的子字符串将从 start 位置开始直到字符串结尾。.
ToString 把 []byte 转换为 string 没有多余的内存开销。 使用该方法需要了解到 []byte 将和 string 公用一块内存, 修改 []byte 的数据将导致 string 发生变化, 这打破了字符串不可以修改的特性,如果你恰恰需要这么做,可能非常的有用。 要保证字符串不可变的特性,就必须保证 []byte 不会发生变化,或者立即消费 string, 往往这个非常的有用, 比如我们需要打印日志: b := []byte("hello word") log.Println(ToString(b)) 尽快的消耗掉 string 是个好主意, 也可以遗忘掉 []byte 后面不在使用这个, 而只使用 string。 比较好的例子是 exstrings.UnsafePad 系列函数,在函数内部使用 []byte 作为字符串缓冲区,返回字符串通过该方法转换。.