回调函数或返回函数在编程语言中作为其他函数的参数传递,并且在执行主函数期间,该程序在spectic时间执行的函数。
这些函数用于允许主要功能以异型方式调用其他函数,也就是说,不必等待SO称为函数才能完成其执行o,然后再继续执行其余代码。当主函数达到结果或特定操作需要的点时,它调用返回函数,并且在通话后正常继续执行成本。
此技术广泛用于编程编程语言(例如JavaScript),以处理可能需要无限期完成时间完成的事件和过程,例如读取文件或来自API的数据加载。使用回调函数时,该程序可以在等待呼叫的返回时继续执行其他任务。
PHP回调功能
m php,回调函数通常在数组函数(例如array_filter()
and array_map()
)上使用,这些函数允许程序员将函数作为参数传递并在数组的每个元素中执行此功能。此外,PHP支持矮函数的使用(也称为 clos ),这些功能可以通过,可以通过 callbacks 。。
使用Array_filter()与矮人函数回调的示例:
$numbers = [1, 2, 3, 4, 5, 6];
$evenNumbers = array_filter($numbers, function($number) {
return $number % 2 == 0;
});
print_r($evenNumbers); // saída: Array ( [1] => 2 [3] => 4 [5] => 6 )
在此示例中,array_filter()函数和矮函数作为参数。矮函数是在数组的每个元素上执行的,如果应将元素保存在生成的数组中,则返回为true,或者false(如果包含)。在这种情况下,矮人函数验证数字是否是部分,如果是正确的。
Java回调功能
java还支持通过接口实现的回调函数,这些函数是定义母亲必须由实施这些班级实施的合同。这意味着在 java 中创建回调函数,有必要与整个母亲创建一个界面,以 callback 和然后创建一个实现此接口并超过整个接口的类。
使用接口创建回调函数的示例:
public interface Calculation {
int calculate(int x, int y);
}
public class Calculator {
public int performCalculation(int x, int y, Calculation calculation) {
return calculation.calculate(x, y);
}
}
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int sum = calculator.performCalculation(10, 5, new Calculation() {
public int calculate(int x, int y) {
return x + y;
}
});
System.out.println(sum); // saída: 15
}
}
在此示例中,计算接口定义了一个完整的()母亲(),该()接收两个整体参数并返回一个整数值。计算类具有一个整个performCalculation()
,它接收两个整个参数和一个实现计算接口的对象。母亲©todo performCalculation()
执行母亲©界面的所有calculate()
,并收到了两个参数并返回结果。
无主(),创建了一个居住对象,该对象实现了计算接口并超过完整的计算(),以执行两个NO之间的总和。该对象作为计算器类perfercalculation()的参数传递,该参数执行总和并返回结果。
在 java 中, php 的array_filter()
的等效函数是 api流的filter()
收集。 API流已引入 Java 8 ,并允许更加有效地处理元素收集。
遵循使用 api流的使用示例来过滤整个编号的列表。
遵循 api流的示例用法来过滤整数列表并仅保留对:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // saída: [2, 4, 6]
}
}
diferenã§ASENTRE回调函数EM php e Java
PHP和Java中回调函数之间的主要区别是它们的定义方式。在PHP中,可以使用 String 或 Array 来定义回调函数,而在 Java 中,它们是O使用接口定义。 Java还支持功能接口,这使得它更加狂热地定义回调功能。另一个重要的区别是如何使用回调函数。在PHP中,它们主要用于应用数组的每个元素定义的函数,而在Java中,它们主要用于事件侦听器。P>>
更多示例 最后, 结果是用 php 中的代码以及没有 api流中的Java代码获得的长度列表。请注意,API流允许您更加简洁有效地执行转换。
回调函数是编程语言的基本特征,可让您将功能(例如零件)传递给其他功能。 php 和 Java 两个支持回调功能,但在定义和使用的方式上有所不同。 php 提供两种定义回调功能的方法,使用 string 这些函数用于允许主要功能以异型方式调用其他函数,也就是说,不必等待SO称为函数才能完成其执行o,然后再继续执行其余代码。当主函数达到需要结果或特定操作的点时,它调用返回函数(回调函数),并且代码的执行正常继续。
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> strings = Arrays.asList("apple", "orange", "banana", "coconut");
List<Integer> lengths = strings.stream()
.map(String::length)
.collect(Collectors.toList());
System.out.println(lengths); // saída: [5, 6, 6, 7]
}
}
map()
函数用于使用整个String::length.
改进来将流的每个元素转换为其长度,这是调用整个length()
的简洁方法。collect()
函数用于收集转换为新列表的元素。
包括£o