函数类型作为返回类型
函数类型也是有效的返回类型,也就是说可以定义一个能返回函数的函数
kotlin 实现方法是将一个函数直接作为返回值
kotlin
fun main() {
val getDiscountWords=configDisconuntWords()
println(getDiscountWords("手机哈哈哈"))
}
fun configDisconuntWords():(String)-> String{
val currentYear=2027
val hour:Int=(1..24).shuffled().last()
return {goodsName:String ->
"$currentYear 年 , 双十一 $goodsName 促销倒计时 $hour 小时"
}
}

lambda与匿名内部类
为什么要在代码中使用函数类型?函数类型能让开发者少写模式化代码,写出更灵活的代码。Java 8支持面向对象编程和lambda表达式但不支持将函数作为参数传给另一个函数或变量,不过Java的替代方案是匿名内部类
java 使用interface 配合匿名内部类实现
typescript
import java.util.Random;
public class ClosureJavaClass {
public static void main(String[] args) {
showOnBoard("洗发露",discountWords);
}
private interface DiscountWords{
String getDiscountWords(String goodsName,int hour);
}
private static void showOnBoard(String goodsName , DiscountWords discountWords){
int hour=new Random().nextInt(24);
System.out.println(discountWords.getDiscountWords(goodsName,hour));
}
static DiscountWords discountWords=new DiscountWords() {
@Override
public String getDiscountWords(String goodsName, int hour) {
int currentYear=2025;
return String.format("%s年 双十一%s促销倒计时 %d 小时",currentYear,goodsName,hour);
}
};
}
