package main
import (
"fmt"
"strings"
)
type Processor struct{}
func (p Processor) process(callback func([]string) []string) {
input := []string{"hello world"}
result := callback(input)
fmt.Println(strings.Join(result, " "))
}
func reverseWords(s []string) []string {
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
s[i], s[j] = s[j], s[i]
}
return s
}
func main() {
var p Processor
p.process(reverseWords)
}
- 首先定义了
Processor
结构体。
- 实现
process
方法,该方法接受一个闭包作为参数,并在方法内部调用闭包处理输入的字符串切片,最后打印结果。
- 定义
reverseWords
函数来实现将字符串切片中的单词反转顺序。
- 在
main
函数中创建Processor
实例,并调用process
方法,传入reverseWords
函数作为闭包参数。