Lamabda 表达式的语法中有时候会出现 mutable 这个关键字,那么这个关键字有什么讲究吗?
其实昨天的文章有个链接这个链接把 Lambda 表达式说的很清楚, C++ 程序员和其他的程序员有个本质的不同,C++ 程序员虽然不指望你能够实现编译器,但是对于语法的实现往往是要追本溯源的,简单的说,当有某个新特性的时候,你要知道这个新特性的基本实现原理,而对于 C# 或者 Jave,抑或是 Python 程序员,他们往往没有这么高的要求,主要的原因不是程序员的责任,而是语言的责任,C++ 是一门偏向底层的语言,需要自己维护内存的状态,这是一个优点也是一个缺点,因为需要自己维护内存状态,所以有些特性和内存相关的,你就必须要能够知道它的运作原理,不然你使用特性的时候就会有很多的坑,你感觉语法学到位了,其实压根没有,其他动态的语言就没有这个顾虑,如果涉及内存的状态,他们可能自己就维护了,新语言 Go 也是把内存的状态自我维护,Go 是一门可以媲美 C 的语言。
对于 mutable 关键字来说,本身的作用就表示可以修改 const 限定的函数,放到这里就是说对应的Lambda表达式可以修改被值捕获的变量的值。
网友评论