问题标签 [language-construct]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python:有什么方法可以声明常量参数?
我有一个方法:
有没有办法标记bar
为常数?比如“里面的值bar
不能改变”或者“指向的对象bar
不能改变”。
php - PHP:什么是语言结构,我们为什么需要它们?
我不断遇到以下陈述:
echo
是一种语言结构,但 print 是一个函数,因此有一个返回值
和
die
是一种语言结构
我的问题是这些语言结构是什么,更重要的是我们为什么需要它们?
c# - 是否应该为了维护而避免某些编程结构(和其他)?
我正在从事一个非个人项目,所以可以肯定地说维护程序员不会是我,否则我不需要问这个问题。
现在有一些我想在我的代码中尝试的结构(委托、lambda 表达式),不是故意使代码更难阅读,而是因为它们适合这种情况(并且输入的代码也更少),并且练习使用它们,因为我是这门语言的新手。
但是,我不确定维护程序员是否会了解每个构造,因为我们中的许多人都不是 ac# 背景,而且我不确定他是否像我一样热衷于编程,或者只是像普通人一样对待它日常工作。所以我的问题是:
是否应该避免某些编程结构以提高可维护性?
如果上述问题的答案是肯定的,那么应该避免使用的构造子集是什么?
全面学习一门语言是维护程序员的责任吗?
php - 在 PHP 中,为什么 echo 不作为函数实现?(不是 echo 与 printf)
我只是好奇。在 PHP 中,为什么不echo
作为函数实现?为什么 PHP 不只是给我们printf
,从不告诉我们echo
?请注意:
- 这不是关于
echo
vs.的问题printf
。 - 我已经知道这
echo
是一种语言结构。
更新:顺便说一句,是printf
使用echo
?
c# - 在 C# 中是否有类似于 PHPs list() 的语言结构?
PHP 有一种语言结构list()
,它在一个语句中提供多个变量赋值。
C#中有类似的东西吗?
如果没有,是否有任何解决方法可以帮助避免以下代码,而不必处理反射?
c# - 如何在 C# 中减去一行的字节数
这真的很奇怪。谁能解释一下?
此代码不起作用:
此代码也不起作用:
然而,将减法放在单独的行上就可以了:
如果必须的话,我不介意将这些陈述放在不同的行中……但我不得不怀疑……
为什么?
javascript - var {u,v,w} = x; 是什么?在Javascript中是什么意思?
我在一段 JS 代码中看到了这一点:
它有什么作用?
syntax - powershell中括号还有其他用途吗?
作为 Powershell 世界的新手,有时我会陷入棘手的语法。这就是为什么我试图找出语言中括号的所有可能用途。
你还知道一些吗?可以在这里补充吗?
这是我的(省略了管道中 curly 的基本用法和方法调用中的 round ):
php - 使用字符串调用 PHP 语言结构
我想缓冲一些内容。获取内容的方式取决于,这就是为什么我在缓冲区函数中添加了一个类型参数来定义是包含还是回显源。
PHP
输出
为什么?难道不能通过字符串变量调用标准的 PHP 函数,如 echo() 或 include() 吗?
编辑:稍微改变了问题,使其更适合答案。
c# - 关于 Haskell -> C# 转换的问题
背景:
当作者最初用许多其他语言标记但后来专注于 Haskell 问题时,我被“拖”到看到这个问题:
Haskell 中的 Fibonacci's Closed-form expression 。
不幸的是,我对 Haskell 没有任何经验,所以我无法真正参与这个问题。然而,其中一个答案引起了我的注意,回答者将其变成了一个纯整数数学问题。听起来棒极了对我来说,所以我必须弄清楚它是如何工作的,并将其与递归斐波那契实现进行比较,看看它有多准确。我有一种感觉,如果我只记得涉及无理数的相关数学,我可能能够自己解决所有问题(但我没有)。所以对我来说,第一步是将它移植到我熟悉的语言上。在这种情况下,我正在做 C#。
幸运的是,我并没有完全蒙在鼓里。我在另一种函数式语言 (OCaml) 方面有丰富的经验,所以其中很多对我来说看起来有些熟悉。从转换开始,一切看起来都很简单,因为它基本上定义了一个新的数字类型来帮助计算。但是,我在翻译过程中遇到了一些障碍,无法完成。我得到完全错误的结果。
分析:
这是我正在翻译的代码:
因此,根据我的研究和我可以推断的内容(如果我在任何地方错了,请纠正我),第一部分Ext
使用具有两个Integer
参数的构造函数声明类型(我猜将继承Eq
和Show
类型/模块)。
接下来是Ext
which "派生" from的实现Num
。 fromInteger
从 执行转换Integer
。 negate
是一元否定,然后是二元加法和乘法运算符。
最后一部分是实际的斐波那契实现。
问题:
在答案中,hammar(回答者)提到求幂由Num
. 但这意味着什么以及它如何实际应用于这种类型?是否有我遗漏的隐含数字“字段”?它是否只是将幂运算应用于它包含的每个相应数字?我假设它是后者并最终得到这个 C# 代码:
然而,这与我对为什么negate
需要的理解相冲突,如果这真的发生,它就不需要它。
现在是代码的肉。我将第一部分读
divide $ twoPhi^n - (2-twoPhi)^n
为:
将以下表达式的结果相除:twoPhi^n - (2-twoPhi)^n。
很简单。提高twoPhi
到n
th 次幂。从中减去其余的结果。在这里,我们正在做二进制减法,但我们只实现了一元否定。还是我们没有?或者是否可以隐含二进制减法,因为它可以由加法和否定(我们有)组合而成?我假设后者。这减轻了我对否定的不确定性。
最后一部分是实际的划分:
divide (Ext 0 b) = b `div` 2^n
. 这里有两个问题。根据我的发现,没有除法运算符,只有一个`div`
函数。所以我只需要在这里划分数字。这个对吗?或者是否有一个除法运算符,但有一个单独的`div`
函数来做其他特别的事情?
我不确定如何解释该行的开头。它只是一个简单的模式匹配吗?换句话说,这只适用于第一个参数是 a 的情况0
吗?如果不匹配(第一个非零),结果会是什么?或者我应该解释它,因为我们不关心第一个参数并无条件地应用函数?这似乎是最大的障碍,使用任何一种解释仍然会产生不正确的结果。
我有没有在任何地方做出错误的假设?还是没关系,我只是错误地实现了 C#?
代码:
这是到目前为止的(非工作)翻译和 完整的源代码(包括测试),以防万一有人感兴趣。
进步:
好的,所以看看到目前为止的答案和评论,我想我知道从这里去哪里以及为什么。
取幂只需要做它通常做的事情,p
在我们已经实现乘法运算的情况下乘以时间。我从来没有想过我们应该做数学课一直告诉我们做的事情。加法和否定的隐含减法也是一个非常方便的功能。
在我的实现中还发现了一个错字。我应该在我应该成倍增加的时候添加。
结论:
所以现在已经完成了。我只对基本操作员进行了实施,并对其进行了一些重命名。以与复数类似的方式命名。到目前为止,与递归实现一致,即使输入非常大。这是最终的代码。
这是完全更新的来源。