当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Golang strings.FieldsFunc()用法及代码示例


strings.FieldsFunc() Golang中的函数用于在每次运行的满足f(c)的Unicode代码点c处拆分给定的字符串str,并返回由str组成的切片数组。

用法:
func FieldsFunc(str string, f func(rune) bool) []string

此处,str是给定的字符串,符文是内置类型,意为包含单个Unicode字符,f是用户定义的函数。

返回:如果str中的所有代码点均满足f(c)或字符串为空,则返回空片。

注意:此函数不能保证调用f(c)的顺序。如果f对于给定的c没有返回一致的结果,则FieldsFunc可能会崩溃。



范例1:

// Golang program to illustrate the 
// strings.FieldsFunc() Function 
  
package main 
  
import ( 
    "fmt"
    "strings"
    "unicode"
) 
  
func main() { 
  
    // f is a function which returns true if the 
    // c is number and false otherwise 
    f:= func(c rune) bool { 
        return unicode.IsNumber(c) 
    } 
  
    // FieldsFunc() function splits the string passed 
    // on the return values of the function f 
    // String will therefore be split when a number 
    // is encontered and returns all non-numbers 
    fmt.Printf("Fields are:%q\n",  
       strings.FieldsFunc("ABC123PQR456XYZ789", f)) 
}

输出:

Fields are:["ABC" "PQR" "XYZ"]

范例2:

// Golang program to illustrate the 
// strings.FieldsFunc() Function 
package main 
  
import ( 
    "fmt"
    "strings"
    "unicode"
) 
  
func main() { 
  
    // f is a function which returns true if the 
    // c is a white space or a full stop 
    // and returns false otherwise 
    f:= func(c rune) bool { 
        return unicode.IsSpace(c) || c == '.'
    } 
  
    // We can also pass a string indirectly 
    // The string will split when a space or a 
    // full stop is encontered and returns all non-numbers 
    s:= "We are humans. We are social animals."
    fmt.Printf("Fields are:%q\n", strings.FieldsFunc(s, f)) 
}

输出:

Fields are:["We" "are" "humans" "We" "are" "social" "animals"]



相关用法


注:本文由纯净天空筛选整理自vanigupta20024大神的英文原创作品 strings.FieldsFunc() Function in Golang With Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。