以下常用方法列表,文档更新可能滞后于代码新特性,更多的方法及示例请参考代码文档: https://pkg.go.dev/github.com/gogf/gf/v2/container/garray
Append
- 说明:向数组的尾部追加数据,可以添加任意数量字符串。
Append
的方法是PushRight
的别名 - 格式:
Append(value ...string) *StrArray
- 示例:建立一个空数组,设置完数据后,并在数组尾部添加新的数据。
func ExampleStrArray_Append() {
s := garray.NewStrArray()
s.SetArray(g.SliceStr{"We", "are", "GF", "fans"})
s.Append("a", "b", "c")
fmt.Println(s)
// Output:
// ["We","are","GF","fans","a","b","c"]
}
At
- 说明:返回数组指定索引的数据
- 格式:
At(index int) (value string)
- 示例:建立一个数组,找到
index
为2的数据。
func ExampleStrArray_At() {
s := garray.NewStrArrayFrom(g.SliceStr{"We", "are", "GF", "fans", "!"})
sAt := s.At(2)
fmt.Println(sAt)
// Output:
// GF
}
Chunk
- 说明:把指定数组按指定的大小
Size
,分割成多个数组,返回值为[][]string
。最后一个数组包含数据的数量可能小于Size
- 格式:
Chunk(size int) [][]string
- 示例:建立一个数组,并将该数组分割成3个数组。
func ExampleStrArray_Chunk() {
s := garray.NewStrArrayFrom(g.SliceStr{"a", "b", "c", "d", "e", "f", "g", "h"})
r := s.Chunk(3)
fmt.Println(r)
// Output:
// [[a b c] [d e f] [g h]]
}
Clear
- 说明:删除当前数组中所有的数据
- 格式:
Clear() *StrArray
- 示例:建立一个空数组,赋值后,并删除该数组的数据。
func ExampleStrArray_Clear() {
s := garray.NewStrArray()
s.SetArray(g.SliceStr{"a", "b", "c", "d", "e", "f", "g", "h"})
fmt.Println(s)
fmt.Println(s.Clear())
fmt.Println(s)
// Output:
// ["a","b","c","d","e","f","g","h"]
// []
// []
}
Clone
- 说明:克隆当前的数组。返回一个与当前数组相同的数组拷贝
- 格式:
Clone() (newArray *StrArray)
- 示例:建立一个空数组,赋值后,克隆出一个新数组。
func ExampleStrArray_Clone() {
s := garray.NewStrArray()
s.SetArray(g.SliceStr{"a", "b", "c", "d", "e", "f", "g", "h"})
r := s.Clone()
fmt.Println(r)
fmt.Println(s)
// Output:
// ["a","b","c","d","e","f","g","h"]
// ["a","b","c","d","e","f","g","h"]
}
Contains
- 说明:判断一个数组是否包含给定的
String
值。字符串严格区分大小写。返回值为bool
- 格式:
Contains(value string) bool
- 示例:建立一个空数组,设置完数据后,判断是否包含指定数据
e
和z
func ExampleStrArray_Contains() {
s := garray.NewStrArray()
s.SetArray(g.SliceStr{"a", "b", "c", "d", "e", "f", "g", "h"})
fmt.Println(s.Contains("e"))
fmt.Println(s.Contains("z"))
// Output:
// true
// false
}
ContainsI
- 说明:判断一个数组是否包含给定的
String
值。字符串不区分大小写。返回值为bool
- 格式:
ContainsI(value string) bool
- 示例:建立一个空数组,设置完数据后,判断是否包含指定数据
E
和z
func ExampleStrArray_ContainsI() {
s := garray.NewStrArray()
s.SetArray(g.SliceStr{"a", "b", "c", "d", "e", "f", "g", "h"})
fmt.Println(s.ContainsI("E"))
fmt.Println(s.ContainsI("z"))
// Output:
// true
// false
}
CountValues
- 说明:统计每个值在数组中出现的次数。返回值为
map[string]int
- 格式:
CountValues() map[string]int
- 示例:建立一个数组,统计数组中每个字符串包含的个数
func ExampleStrArray_CountValues() {
s := garray.NewStrArrayFrom(g.SliceStr{"a", "b", "c", "c", "c", "d", "d"})
fmt.Println(s.CountValues())
// Output:
// map[a:1 b:1 c:3 d:2]
}
Fill
- 说明:在数组中指定的开始位置
startIndex
,用指定的value
进行填充。返回值为error
- 格式:
Fill(startIndex int, num int, value string) error
- 示例:建立一个数组,在数组开始位置
index
为2的地方,用字符串here
填充3个数据
func ExampleStrArray_Fill() {
s := garray.NewStrArrayFrom(g.SliceStr{"a", "b", "c", "d", "e", "f", "g", "h"})
s.Fill(2, 3, "here")
fmt.Println(s)
// Output:
// ["a","b","here","here","here","f","g","h"]
}
FilterEmpty
- 说明:过滤指定数组中的空字符串
- 格式:
FilterEmpty() *StrArray
- 示例:建立一个数组,在赋值后,过滤该数组中的空字符串
func ExampleStrArray_FilterEmpty() {
s := garray.NewStrArrayFrom(g.SliceStr{"a", "b", "", "c", "", "", "d"})
fmt.Println(s.FilterEmpty())
// Output:
// ["a","b","c","d"]
}
Get
- 说明:返回数组中指定
index
的值,返回值有2个参数,返回值value
,和是否找到指定位置的数据found
,为true
则找到,为false
则未找到 - 格式:
Get(index int) (value string, found bool)
- 示例:建立一个数组,在赋值后,得到数组
index
为3的值
func ExampleStrArray_Get() {
s := garray.NewStrArrayFrom(g.SliceStr{"We", "are", "GF", "fans", "!"})
sGet, sBool := s.Get(3)
fmt.Println(sGet, sBool)
// Output:
// fans true
}