问题标签 [language-concepts]
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.
language-concepts - 我怎样才能证明这个语法是模棱两可的?
我试着这样展示
我怎样才能解决这个问题?
algorithm - 使用数学结果作为变量
我正在使用批处理代码创建一个 POS 系统(销售点系统)。一切都很好,但我试图将两个变量(产品的数量)乘以一个设定的数字(产品的价格)并将输出发送到一个单独的文件,该文件将作为最终产品列表读取,或设置为变量。我什至不知道这是否可能,但如果可以,请有人帮忙。
如果您需要更多详细信息,请告诉我。
c - C 对数组的厌恶
在有关 C 的介绍性书籍中,经常声称指针或多或少是数组。充其量,这不是一个巨大的简化吗?
C中有一个数组类型,它的行为与指针完全不同,例如:
给出输出
或者作为另一个示例a = b
会给出编译错误(GCC:“赋值给具有数组类型的表达式”)。
当然,指针和数组之间有密切的关系,从某种意义上说,是的,数组变量本身的内容就是第一个数组元素的内存地址,例如int a[10] = {777, 1, 2, 3, 4, 5, 6, 7, 8, 9}; printf("a = %ul\n", a);
打印包含 777 的地址。
现在,一方面,如果您在结构中“隐藏”数组,您可以轻松地复制大量数据(如果您忽略包装结构,则为数组),只需使用=
运算符(而且速度更快):
输出:
但是你不能用数组本身来做到这一点。对于数组x, y
(相同大小和相同类型),表达式x = y
是非法的。
然后,函数不能返回数组。或者如果数组被用作参数,C将它们折叠成指针——它不关心大小是否明确给出,所以下面的程序给出了输出sizeof(a) = 8
:
这种对数组的厌恶背后有什么逻辑吗?为什么 C 中没有真正健壮的数组类型?如果有一个会发生什么坏事?毕竟,如果一个数组隐藏在 a中,则struct
该数组的行为与 Go、Rust 等中的一样,即数组是内存中的整个块,传递它会复制它的内容,而不仅仅是第一个的内存地址元素。例如像在下面的程序中
给出输出:
c# - 类外使用的命名参数
我知道在 C# 中有命名参数之类的东西,所以这有点误导。我的问题是它们通常应该被称为什么。
在我使用其他语言的库时,我有时会遇到可以在类的函数中使用的预定义值。
它通常以所有大写字母命名,并且是函数中非常具体的值。我认为它的行为很像公共静态字符串,但是当我使用这个想法时,智能感知并没有选择它。有人可以告诉我这种参数选项的一般名称,如果它们存在,使用这种东西的利弊。
谢谢,
php - PHP:如何正确地将原语复制到新的内存地址
我最近遇到了一个问题(PHP:变量值神秘地设置为 0),其中一个变量按值传递给 PHP 函数,并且不知何故该变量的值被更改,如下所示:
假设它是一个用 C 编写的旧函数,并且在其内部它正在做一些事情来破坏变量,因为在 C 中显然你可以做那种事情。无论如何,我尝试先复制该值,然后将其传入,如下所示:
当然这并没有帮助,因为正如我在这里阅读的那样, PHP 只是$var2
在符号表中指向与该 zval 容器相同的 zval 容器$var
并增加该 zval 容器的引用计数。当然,如果$var2
是“按值”重新分配,则应该为其创建一个新的 zval 容器,但这显然不是常规的按值分配(在上一个问题中与__set()
魔术方法有关) . 我假设存储值的物理内存地址发生了一些事情,而不是通过正常的 PHP 机制发生了分配,因此指向该 zval 的所有内容都会受到影响。很好。
我的解决方法是找到一种克隆原语的方法$var
。抱歉,如果这是重复的话,但是我在克隆类上发现了很多东西,但在克隆原语上却一无所获,我认为是因为 PHP 应该自动正确地执行此操作。我最终使用了这个:
我只是想知道,有没有更好的方法?让我们假设没有其他解决方法,例如使用不同的函数或其他东西,并且我们必须获得该变量的真实副本。怎么可能呢?
r - R中的mode,storage.mode,typeof有什么区别(在想法方面)?
到目前为止我的研究
大多数文章都讨论了 和 之间的区别class
,但我对、和之间的区别并typeof
没有发现太多。mode
storage.mode
typeof
我明白了mode
,storage.mode
和typeof
更相似,class
也更不同。我知道前两个电话typeof
,我知道他们处理特定类型略有不同(我什至知道哪些以及如何处理)。我想知道的是这背后的想法是什么。
最小的工作示例
我在找什么
我不是在寻找什么样的答案:“mode
并以不同的方式storage.mode
处理single
。
我正在寻找什么样的答案:“typeof
是在底层 C 实现中使用的mode
数据类型,而是......的数据类型并且storage.mode
是......的数据类型”
此外,我希望能够区分手册和教程中使用的术语“模式”和“类型”。例如,有人说typeof
返回数据对象的模式——这让我感到困惑。
我希望这个问题足够具体/清楚。在否决或投票结束之前,请告诉我有什么不清楚的地方。
scala - Scala `match` 是语法糖吗?如果是这样,它是如何工作的?
在
有相当多的语法糖正在发生。我知道这case
是隐式创建两个对象
这就是为什么我们可以编写例如Sum(...)
并且仍然通过类实例化对象的原因,因为Sum(...)
它也是Sum.apply(...)
.
我是对的,match
构造也是语法糖吗?如果是,case Number(n)
编译器是如何重写的?
我在问,因为我没有看到n
in 在case Number(n)
任何地方定义和/或绑定到一个值。奇怪的是,在match
构造中,第一个字母的大小写很重要(如果它是大写字母,它将是一个常数)。这很奇怪,因为据我所知,这只是一个match
相关的结构,所以我不知道如何去糖。
scala - 用 Map 而不是 List 理解 foldLeft
我很想了解foldLeft
地图的工作原理。如果我有一个 List 并使用一个零元素和一个函数调用它 foldLeft,我确实理解它是如何工作的:
我在其中添加零元素0
和第一个元素,list1
然后添加第二个元素,list1
依此类推。所以输出成为新的输入,第一个输入是零元素。
现在我得到了代码
- 所以我这里的第一个元素是 a
Tuple2
,但既然map2
是 aMap
而不是 aTuple2
,那么零元素是什么? - 当我们有 a
List
时list1
,我们总是“取下一个元素list1
”。什么是“下一个元素”map1
?是另一对map1
吗?
scala - 何时明确说明函数输入的类型?
我能够计算火花集合的每个起始字母的平均字长
要么与
或与
每个导致
我不明白的是:为什么我需要在第二个示例中明确说明函数中的类型,而第一个示例的函数可以不用?
我在谈论
对比
它可能更像是 Scala 而不是 Spark 问题。