对于没有comp-sci背景的人来说,计算机科学领域的lambda是什么?
language-agnostic theory lambda computer-science terminology
我已经快速阅读了Microsoft Lambda Expression文档.
这种例子帮助我更好地理解了:
delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
Run Code Online (Sandbox Code Playgroud)
不过,我不明白为什么会有这样的创新.它只是一种在"方法变量"结束时死亡的方法,对吗?为什么我应该使用它而不是真正的方法?
除了保存代码行之外,lambda表达式还有什么用处吗?
lambda提供的特殊功能是否解决了不容易解决的问题?我见过的典型用法是代替写这个:
Comparator<Developer> byName = new Comparator<Developer>() {
@Override
public int compare(Developer o1, Developer o2) {
return o1.getName().compareTo(o2.getName());
}
};
Run Code Online (Sandbox Code Playgroud)
我们可以使用lambda表达式来缩短代码:
Comparator<Developer> byName =
(Developer o1, Developer o2) -> o1.getName().compareTo(o2.getName());
Run Code Online (Sandbox Code Playgroud) 我想学习.NET,我有2周的时间.我对CLR,Assemblies和某些基础知识有充分的了解.我有一份"CLR via C#".但我需要学习高级C#概念,如委托,反射,泛型等.然后我需要快速进入编码.记住,我有2周的时间.我想快速掌握C#高级概念,然后一些彻底的编码实践就是时间的需要.
你能建议我:1)我的方法.2)快速学习这些高级C#概念的站点或书籍.3)通过编码实践所学习的东西......关于实践/编程问题的建议.因为我也相信一个人只能通过练习来学习任何语言.
请写下你的建议.
此致贾斯汀塞缪尔.