纠结了好久,最终决定把lambda这个部分从Unity中分离出来单独总结。理解并能够使用Lambda表达式是这篇文章的目的。除此之外如果有关于lambda的拓展用法亦或者好的使用案例一并在这里记录。
首先是Lambda的基础概念
Lambda
lambda expressions是什么
A lambda expression is a block of code (an expression or a statement block) that is treated as an object. It can be passed as an argument to methods, and it can also be returned by method calls.
来自 Lambda expressions (C# Programming Guide)
匿名函数,也可以这样叫,将函数作为对象处理,用{}
包含。因为最近一年之和C++打交道,C#的语言机制究竟是什么样子的完全不记得了,关于C#的编译执行过程应该与C++区别并整理到别的文章去。
但是就C++的感觉来说,lambda给我的印象就是函数指针。但是内部的处理我还是不清楚(无论是C#还是C++),比如说函数指针(lambda)的调用代价是什么样子的,跟普通的函数调用有什么区别等等。
但是这些先放一边,将lambda视为一个对象,可以作为参数①,可以作为返回函数调用②。
lambda怎么用
既然要使用lambda就要知道它的使用方式是什么样子的。
这篇涉及了一些Linq的东西,讲的会比较多一些,但是很好的涵盖的lambda的继承用法。
这篇讲的内容比较少但是对于基础讲的很具体。