MST

星途 面试题库

面试题:Rust闭包在复杂回调场景中的应用

假设有一个结构体`Processor`,包含一个`process`方法,该方法接受一个闭包作为回调。闭包接收一个字符串切片,处理后返回处理后的字符串切片。要求实现一个功能,将传入的字符串切片按单词反转顺序(例如:'hello world'变为'world hello')。请完成`Processor`结构体及其`process`方法的实现,并在主函数中调用展示效果。
12.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
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)
}
  1. 首先定义了Processor结构体。
  2. 实现process方法,该方法接受一个闭包作为参数,并在方法内部调用闭包处理输入的字符串切片,最后打印结果。
  3. 定义reverseWords函数来实现将字符串切片中的单词反转顺序。
  4. main函数中创建Processor实例,并调用process方法,传入reverseWords函数作为闭包参数。