科里定律的变量 ( 二 ) - 进阶,那些有趣的评论

yufei       6 年, 3 月 前       816

前一篇文章 科里定律的变量 ( 一 ) - 缘起,透视严重的变量稀缺问题 极大的震撼了我,我对之前团队中的代码为啥越来越难以阅读有了一个新的认知,本来以为翻译完了原文就可以了,没想到下面的评论更精彩

在国外,一个有趣的论点总能得到一大批的支持者和拥护者,而对于那些不支持的人,它们会笑而不语,这就是国外社区好的一面,而对于国内,大多数都是钢精,不乏那些出名的大佬,总想压别人一头

因此,这篇帖子,就来翻译下原文中的所有有价值的评论

关于 Outliving the Great Variable Shortage

原帖为 Outliving the Great Variable Shortage ,不过已经无法访问了,你可以访问 Google 快照

精彩的评论

  • 我完全赞同你的想法,在 Perl 中检查用户实际输入是否为 '0'0'' 都被评估为 false 会令人变得非常沮丧

    PHP 就很好的解决了这个问题,它可以通过 恒等于 ( === ) 来检查 $value === false,只有在 $value 明确的被设置为 false 时才返回 true

  • C 语言伴随着我的成长。在 C 语言中,将任何东西与 「 true 」也就是 1 进行比较被认为是非常差的形式,因为它有那么多的 「 true 」 值,但只有少的可怜的 「 false 」 值。 我甚至会定义一个宏 ( 如果你原谅我将进入古老的回忆中 )

    #define IS_TRUE(x)   (!(!(x))
    

    C++ 语言中,则定义了一个可以与 truefalse 进行比较的 布尔类型 ( bool ) ,但一朝被蛇咬,十年怕井绳,我已经已经训练过不能比较 true

    它困扰我吗?是的,但是我忘记了它让我感到困扰,因为有一段时间没有弄乱它了

    顺便说一句,Python 给了我们个非常广泛的 False 值,我总是有点不习惯使用它

    我尽量小心谨慎

    这是一个非常有趣的游戏

    毕竟,创建一个具有两个可能值的布尔类型 ( 真的 ) 有多难 ? 你肯定不会认为需要多年的语言演变才能达到这一点

  • 编程语言通常缺少的一件事是简洁,明确的泛型系统

    在 haskell 中,它被称为类型参数,允许通过将类型组合在一起来构造新类型

  • 嗯,Python 将 {}[] 认为是 False 值是很方便的,当但对我来说并不令人满意,它缺乏美味的外观,我们把它放到一边,因为这不是我的主要观点

    我的主要观点是,魔术值不应该改变变量的含义,这是我一直看到的,咆哮的事情,在此我感到非常自信

    如果存在变量,则每个变量应该是事实,事实的语义应该是稳定的并且反映在名称中,我认为bothNameOrDateOfBirthForNonResidents 会是一个特别糟糕的变量名称,并且是一种草率思维的迹象

    针对 {}[]False 的情况,我一直也很困惑,每次写的时候都会犹豫,所以我索性使用 len({}) == 0len({}) == 0 来完成判断

  • 将 空数组,空元组和 空字符串计算为 False 的情况是我最近才喜欢上的,大多数情况下,函数是否传递空数组,空元组或 null/none/nil 值是无关紧要

    PHP 这样可怕的语言中尤其如此,它们具有可以返回多种类型结果的函数,例如当 NULL 传递给函数时为 NULL,当它无法处理输入时为 False,如果函数成功则为 int

结束语

其实还有很多的评论没有翻译,我挑选处了这几个比较符合作者意思的评论。

变量的时候是一个非常大的问题,可能刚开始学编程语言的时候懵懵懂懂,反而用了很多变量,而后面越来越厉害时,倒是变量的重复利用更多了些

不管怎样? 出于各种目的,我觉得吧,有条件,的确应该更多的使用更多的变量

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.