繁体   English   中英

依赖编程语言的默认功能是明智的吗?

[英]Is it wise to rely on default features of a programming language?

我应该经常依赖默认值吗?

例如,在PHP中,如果您有以下内容:

<?php

$var .= "Value";

?>

这非常好 - 它有效。 但是,如果将这样的赋值转换为以前未使用的变量后来从语言中消除了怎么办? referring to just general assignment to an unused variable.) (我指对未使用的变量的一般赋值。)

有无数的例子表明某些东西的默认值已经发生了变化,而现有的代码却没用了。

另一方面,没有默认值,会有很多代码冗余。

处理这个问题的正确方法是什么?

在我看来,一旦语言达到一定程度的接受程度,语言变化的可能性非常低。

对我而言,每种语言都附带一个(有时或多或少)独特的功能集。 不使用那些,因为它们有一天可能会消失,似乎是短视的。 当然,不要仅仅为了这样做而使用深奥的功能 - 确保你遵循通常的可读性和最佳实践原则,但我认为没有必要区别于特定的功能。

编程语言的默认值特征,如果实际上是标准的记录部分而不仅仅是实现的意外(许多过去的“默认初始化”),与编程语言的任何其他特征没有区别。 你不妨问一下,依靠语言中的其他东西是否明智,无论智慧如何,答案是没有选择 - 你必须依赖某些东西,并且在未来的版本中可以假设任何东西都可以改变。

当然,如果您所依赖的东西是该语言的常用功能,而不是奇怪的角落情况,那么在未来版本中保留它的可能性要大得多。 此外,如果你担心这些事情,那么选择一个有着保持向后兼容性历史的成熟语言是明智的。 有些语言需要付出很大的努力才能确保旧代码在新版本的语言中运行,而有些则不那么强。

所以,这是一般的答案。 有关默认值的具体答案是,它取决于具体情况,相关语言等。 你可以完全依赖于C语言中的全局静态变量在程序启动时为零的事实。 其他一些案例显然不太可靠。

如果某些东西是某种语言的定义特征,那么依赖它就可能非常安全。

你应该警惕依赖功能的地方是当你进入你未处理行为的区域,或者如果你通过将某个功能用于完全不同于预期的功能而“滥用”某个功能时。

由于“字符串的默认值”几乎是主线方案,因此它可能是安全的。 更危险的是,如果你碰巧早先声明了这个变量,你可能会被它改变预期的值作为意外的副作用。

基本上,如果您没有滥用语言功能或依赖未定义的行为,您可能应该更担心代码中的意外副作用,而不是担心语言的变化 - 特别是如果语言成熟的话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM