gpt4 book ai didi

c# - 为什么 lambda 函数不会引入与 goto 语句类似的问题?

转载 作者:太空宇宙 更新时间:2023-11-03 19:50:04 24 4
gpt4 key购买 nike

在我的 C# 书中它是这样写的:“=> lambda 运算符(读作‘转到’)。”

我一直想知道 goto 和 lambda 表达式在良好的编码习惯方面有什么区别。如果由于复杂代码的可能性而避免了 goto,那么 lambda 表达式是否也不会导致同样的问题?更一般地说,为什么强烈鼓励我使用 lambda 函数,而我却非常不鼓励使用 goto 函数? (也就是说,我很清楚为什么 goto 不受欢迎,但为什么 lambda 函数没有因为类似的原因不受欢迎?)

我唯一的猜测是 lambda 函数评估并返回一些东西,因为我们不知道 goto 可能会去做什么。这至少应该使 lambda 函数更易于测试,因为它们更符合有组织的、面向对象的代码的思想。

最佳答案

仅仅因为您“阅读”=> 为“goes to”并不意味着它与老派的 GOTO 语句有任何关系。它们是完全不同的东西。我听说开发人员在大声朗读该符号时会交替使用“yields”或“arrow”等短语。

GOTO 语句为开发人员提供了太多的自由,可以将执行点移动到代码中的任意点。它往往会引入错误,因为当执行能够任意跳转时,开发人员很难跟踪各种变量在任何给定时间点可能处于的所有可能状态。

所有函数(包括 lambda 函数)都有定义的作用域和遵循 C# 语言其余部分建立的逻辑的执行流程。请记住,lambda 语法只是映射到 delegate/closure 的“语法糖”,它基本上只是一个美化的函数。

关于c# - 为什么 lambda 函数不会引入与 goto 语句类似的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40538807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com