如何通过闭包、lambda表达式和接口设计一门高效语言(七)?

2026-05-27 11:131阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计4048个文字,预计阅读时间需要17分钟。

如何通过闭包、lambda表达式和接口设计一门高效语言(七)?

设计一门语言(七)—— 封装、Lambda和Interface

人们都非常喜欢讨论封装这个概念。实际上,这个概念对于编写代码来说,并没有太大的实用价值。编写代码时,我们只需要掌握好Lambda表达式和Class、Interface的语义即可。

如何设计一门语言(七)——闭包、lambda和interface

人们都很喜欢讨论闭包这个概念。其实这个概念对于写代码来讲一点用都没有,写代码只需要掌握好lambda表达式和class+interface的语义就行了。基本上只有在写编译器和虚拟机的时候才需要管什么是闭包。不过因为系列文章主题的缘故,在这里我就跟大家讲一下闭包是什么东西。在理解闭包之前,我们得先理解一些常见的argument passing和symbol resolving的规则。

首先第一个就是call by value了。这个规则我们大家都很熟悉,因为流行的语言都是这么做的。大家还记得刚开始学编程的时候,书上总是有一道题目,说的是:

void Swap(int a, int b) { int t = a; a = b; b = t; } int main() { int a=0; int b=1; Swap(a, b); printf("%d, %d", a, b); }

然后问程序会输出什么。当然我们现在都知道,a和b仍然是0和1,没有受到变化。这就是call by value。如果我们修改一下规则,让参数总是通过引用传递进来,因此Swap会导致main函数最后会输出1和0的话,那这个就是call by reference了。

阅读全文

本文共计4048个文字,预计阅读时间需要17分钟。

如何通过闭包、lambda表达式和接口设计一门高效语言(七)?

设计一门语言(七)—— 封装、Lambda和Interface

人们都非常喜欢讨论封装这个概念。实际上,这个概念对于编写代码来说,并没有太大的实用价值。编写代码时,我们只需要掌握好Lambda表达式和Class、Interface的语义即可。

如何设计一门语言(七)——闭包、lambda和interface

人们都很喜欢讨论闭包这个概念。其实这个概念对于写代码来讲一点用都没有,写代码只需要掌握好lambda表达式和class+interface的语义就行了。基本上只有在写编译器和虚拟机的时候才需要管什么是闭包。不过因为系列文章主题的缘故,在这里我就跟大家讲一下闭包是什么东西。在理解闭包之前,我们得先理解一些常见的argument passing和symbol resolving的规则。

首先第一个就是call by value了。这个规则我们大家都很熟悉,因为流行的语言都是这么做的。大家还记得刚开始学编程的时候,书上总是有一道题目,说的是:

void Swap(int a, int b) { int t = a; a = b; b = t; } int main() { int a=0; int b=1; Swap(a, b); printf("%d, %d", a, b); }

然后问程序会输出什么。当然我们现在都知道,a和b仍然是0和1,没有受到变化。这就是call by value。如果我们修改一下规则,让参数总是通过引用传递进来,因此Swap会导致main函数最后会输出1和0的话,那这个就是call by reference了。

阅读全文