问题标签 [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.
javascript - JavaScript 是否具有类似于 php list 命令的语言结构?
JavaScript 是否有语言结构或类似于 php list 命令的东西?http://php.net/manual/en/function.list.php
此命令将在单个语句中将数组的值分配给变量。例如,给定数组:
list 命令会将每个数组元素值分配给命名变量:
这样:
因此,这是一种在一个语句中为多个变量赋值的简单方法。
JavaScript 是否有等效的东西,每个变量不必单独分配?
有没有办法使用对象的属性或数组的元素来做到这一点?如果没有,是否可以编写一个可以做到这一点的函数?如果这样做的唯一方法是通过函数,那么函数将需要访问定义变量的范围。
我在这个五年前的问题中尝试了解决方案:Javascript 等效于 PHP 的 list(),但它们不起作用。数组原型更改无法在我的 node.js 环境中分配变量,左手数组分配是 Chrome 中的引用错误。有人谈论一种实验性的新技术,但这种说法已经有好几年了。我想知道是否有比链接问题中列出的更好的解决方案。
ruby-on-rails - ruby 构造,用于在块执行后保留变量的原始值
有时我需要保留变量的原始值,做一些事情然后恢复它的原始值,如下所示:
Ruby 中是否有某种语言结构可以让我做得更简单?
我试图搜索这个,但我真的想不出任何可搜索的搜索词。我设法通过传递当前绑定然后使用 eval 在原始上下文中保留原始值来为其编写自己的解决方案:
有没有更好的选择来实现这一目标?
c++ - 如何在 C++ 中模拟解构?
在 JavaScript ES6 中,有一种称为解构的语言特性。它也存在于许多其他语言中。
在 JavaScript ES6 中,它看起来像这样:
我可以在 C++ 中做什么来获得类似的语法并模拟这种功能?
php - 我可以在语言结构中使用变量函数吗?
php - If-Statement 范围内的 PHP 声明符
这是非常基本的。假设您在 if 语句中定义了一个变量
我可以访问 if 语句下方的 $stmt 吗?或者是否需要在 if 之上定义 $stmt?
scala - Scala `match` 是语法糖吗?如果是这样,它是如何工作的?
在
有相当多的语法糖正在发生。我知道这case
是隐式创建两个对象
这就是为什么我们可以编写例如Sum(...)
并且仍然通过类实例化对象的原因,因为Sum(...)
它也是Sum.apply(...)
.
我是对的,match
构造也是语法糖吗?如果是,case Number(n)
编译器是如何重写的?
我在问,因为我没有看到n
in 在case Number(n)
任何地方定义和/或绑定到一个值。奇怪的是,在match
构造中,第一个字母的大小写很重要(如果它是大写字母,它将是一个常数)。这很奇怪,因为据我所知,这只是一个match
相关的结构,所以我不知道如何去糖。
c++ - 调用 C++ 函数时指定默认参数
假设我有这样的代码:
正如您在上面的代码中明显看到的那样,参数a
、b
和c
的默认参数值为 0。现在看一下我的主要函数:
现在我知道我不能只跳过一个参数,让它具有默认值,因为该值将评估为该位置的参数。我的意思是,我不能说 call, f(a,c)
,因为,c
会被评估为b
,这是我不想要的,特别是如果c
是错误的类型。有没有办法让调用函数在 C++ 中指定,在任何给定位置使用函数的任何默认参数值,而不限于从最后一个参数向后退到无?是否有任何保留关键字来实现这一点,或者至少是一种解决方法?我可以举一个例子:
c++ - 这个案例标签的目的是什么?
在boost/asio/coroutine.hpp中,宏的定义中有 case 语句yield
,似乎无法访问:
case -1
由于切换的值只能是0
or ,其目的是1
什么?
c# - C# 等效于 C++ std::vector。结尾()
我试图用 C# 为我的六边形球体项目重写我在互联网上找到的一些 C++ 代码,但我遇到了以下代码:
我将它大部分转换为 C#。我什至构建了自己的Find<T>(List<T> list, T value)
方法,该方法实现了与 std::find 相同的基本功能。
但是,我仍然不确定文档std::vector<T>::end()
。文档说它返回一个指向迭代器末尾的“占位符”插槽的迭代器,并且尝试访问它将导致“未定义的行为”。做这个:
1.) 意味着在我的 C# 中,当处理与end()
元素进行比较的常规对象时,我应该将对象与null
?
2.) 对于整数和其他原语,我应该只与 -1 之类的标记值进行比较吗?
在上面的c++源代码中,nbrs是一个std::vector,m_hexA是一个int,ti是一个struct。
php - php中的“array_expression”是什么意思?
http://php.net/manual/en/control-structures.foreach.php
试图更好地理解 foreach 循环。在上面的文档中,它声明“第一种形式循环遍历由 array_expression 给出的数组。”
到底什么是array_expression?