Java语言中Arrow函数的完整说明,以及它如何帮助开发人员编写灵活一致的代码。
在深入探讨箭头功能的概念之前。 我想讨论旧的Javascript传统方法的忙碌语法。 ES6中引入了Arrow函数,这是一种用于编写javascript函数的现代样式。 由于技术日趋现代化,因此javascript也在日趋现代化。
在我们老式的Javascript编程中,这些函数非常易于实现和使用。 基本的sayHello函数类似于
function sayHello ( name ) {
return "Hello " + name;
}
// Function Call
console .log(sayHello( "Javascript" ));
上面的程序将生成Hello Javascript的输出。 传统的javascript函数易于理解和实现。 但是,当涉及到现代javascript函数式编程风格时。 这有点奇怪,很难理解。 初学者在第一次学习时可能会有点困难,因为语法并不是那么容易,但是当我们的手被箭头功能弄脏时,我们一定会喜欢的。
箭头功能的特点
由于箭头功能是javascript社区的新增功能。 无疑,它应该比现有的方法具有更好的质量,然后才对开发人员有所帮助。 箭头功能的首要功能是-
- 带有主体的Arrow函数没有隐式的return语句。
- 它将自动将此绑定到周围的代码上下文。
- 它不如传统的javascript代码那么冗长。
- 它没有原型属性。箭头函数没有内置参数属性,这与传统的Javascript函数不同。 但是我们可以在rest参数的帮助下实现它。
- 箭头函数对于回调,promise或map,reduce和forEach之类的方法更方便。
现在,我们将尝试借助箭头函数重新实现旧式的javascript函数。 语法如下:
sayHello = name => "Hello " + name;
// calling the function
console .log(sayHello( "Javascript" ));
以上程序的输出将与先前编写的代码相同。
具有零参数的箭头功能
具有零参数的arrow函数的语法-
helloWorld = () => "Hello World.!" ;
console .log(helloWorld());
//OUTPUT: Hello World.!
带有一个参数的箭头功能
具有单个参数的箭头函数可以通过两种方式实现:
squareValue = n => n * n;
console .log(squareValue( 3 ));
// OUTPUT: 9
否则,我们也可以以其他方式创建上述功能-
squareValue = ( n ) => n * n;
console .log(squareValue( 3 ));
// OUTPUT: 9
输出不会改变。 我们可以使用括号或不使用括号来声明参数。
具有多个参数的箭头功能
多个参数的声明将非常简单-
add = ( number1, number2 )=> { return number1 + number2 };
console .log(add( 3 , 2 ));
//OUTPUT: 5
内置参数属性的问题
在传统的javascript函数中,我们有一个名为arguments的内置属性,它可以帮助我们默认情况下获取可变数量的参数,这是一个有趣且有用的属性。 但是Arrow函数不支持该属性。
// Traditional Javascript Approach
function addValues ( ) {
sumValue = 0 ;
for ( let i= 0 ;i< arguments .length;i++){
sumValue += arguments [i];
}
return sumValue;
}
console .log(addValues( 1 , 2 , 3 , 4 , 5 ));
console .log(addValues( 10 , 20 , 30 ));
在上面的代码中,有一个参数属性,可帮助我们处理大量功能参数。 这有助于我们在某些情况下产生动态结果。 上面的代码的结果将是-
console .log(addValues( 1 , 2 , 3 , 4 , 5 )); // 15
console .log(addValues( 10 , 20 , 30 )); // 60
但是Arrow函数使用以下语法方法解决了该问题-
calc = ( ...args ) => {
sumValue = 0 ;
for ( let i= 0 ;i<args.length;i++){
sumValue += args[i];
}
return sumValue;
};
console .log(calc( 5 , 3 , 4 , 5 ));
// OUTPUT 17
我们还可以借助reduce方法减少行数,如下所示:
带箭头功能的reduce方法
Arrow函数将与reduce函数一起更有效地工作,从而使开发人员的生活更加轻松。
function sum ( ...args ) {
return theArgs.reduce( ( prev, curr ) => {
return prev + curr;
});
}
console .log(sum( 1 , 2 , 3 ));
//OUTPUT: 6
console .log(sum( 1 , 2 , 3 , 4 ));
// OUTPUT: 10