使用 Go 包中的私有“小写”函数

ale*_*nco -2 package go

我正在尝试在我的包中使用以下函数main:

html.go(来自黑色星期五):

func doubleSpace(out *bytes.Buffer) {
    if out.Len() > 0 {
        out.WriteByte('\n')
    }
}
Run Code Online (Sandbox Code Playgroud)

main.go:

func (options *renderer) Paragraph(out *bytes.Buffer, text func() bool) {
    marker := out.Len()
    doubleSpace(out)

    out.WriteString("<p class='custom'>")
    if !text() {
        out.Truncate(marker)
        return
    }
    out.WriteString("</p>\n")
}
Run Code Online (Sandbox Code Playgroud)

我尝试blackfriday.doubleSpace这样做blackfriday.DoubleSpace,但在我得到的三种情况下undefined。

正确的做法是什么?

Log*_*tor 5

你不能。这是黑色星期五的作者经过深思熟虑的决定。您唯一的选择是定义自己的函数来执行相同的操作。这就像用Java这样的语言访问私有成员一样。

请参阅此处的规范: https ://golang.org/ref/spec#Exported_identifiers