如何在golang函数中传递正则表达式

How*_*ard 4 go

我想将编译的正则表达式传递给golang函数,例如

package main

import "fmt"
import "regexp"

func foo(r *Regexp) {
    fmt.Println(r)    
}

func main() {

    r, _ := regexp.Compile("p([a-z]+)ch")
    foo(r)
}
Run Code Online (Sandbox Code Playgroud)

但它显示"未定义:正则表达式"

任何提示?

pet*_*rSO 9

使用合格的标识符.例如,

package main

import "fmt"
import "regexp"

func foo(r *regexp.Regexp) {
    fmt.Println(r)
}

func main() {

    r, _ := regexp.Compile("p([a-z]+)ch")
    foo(r)
}
Run Code Online (Sandbox Code Playgroud)

输出:

p([a-z]+)ch
Run Code Online (Sandbox Code Playgroud)

合格的标识符

限定标识符是使用包名称前缀限定的标识符.包名称和标识符都不能为空.

QualifiedIdent = PackageName "." identifier .
Run Code Online (Sandbox Code Playgroud)

限定标识符访问必须导入的不同包中的标识符.必须在该包的包块中导出和声明标识符.

math.Sin  // denotes the Sin function in package math
Run Code Online (Sandbox Code Playgroud)