我无法在使用高阶函数时传递参数

I can't pass the argument while using higher order function

Here you can see that I can't pass that string parameter

我不知何故学会了如何在同一个 class 中传递一个方法,但是,当我想从另一个 class 调用它时,我无法传递参数。

这里有几个问题:

  1. introduceMyself 方法接受一个 higher-order 函数,但在它的用法中,您似乎不需要方法本身,而是它的结果。我建议用 name 参数替换 getName 参数并将其转换为常规字符串,该字符串将通过调用所述方法从外部提供。
  2. 在第 6 行中,您有一个语法错误。由于您使用的是实例 - person,您可以将 :: 替换为 .像这样:person.myNameIs("michael")。它不起作用,因为 :: 传递了你并不真正想要的方法本身。同样,您的代码暗示您需要传递方法的结果而不是方法本身。

最后,您可以传递高阶函数,但不能“带参数”传递它们。您可以执行以下 3 项操作之一:

  1. 本地调用HOF并传递调用结果
  2. 传递 HOF 和参数并在需要的任何地方调用它们。
  3. 传递 HOF 并让目标传递它选择的任何参数。