问题标签 [nomenclature]
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.
generics - 嵌套时等效的类型的名称(例如 Async> 相当于异步)
我正在寻找用于指代嵌套下等效的泛型类型的名称。也就是说,您不会通过将类型嵌套在自身内部来获得“不同的值”。
例如, anAsync<Async<int>>
可以被视为等效于 an Async<int>
,我想知道如何调用Async
实际上具有此等效属性的类型。
我的直觉是称它们为“折叠类型”或“嵌套下的幂等”,但我真的不知道正确的术语是什么。
url - 绝对 URL 的定义是什么(完全限定?)
(至少)有三种方法可以链接到资源:
href="foo/bar.html"
href="/foo/bar.html"
href="http://example.com/foo/bar.html"
第一个是“相对网址”,没问题。但我已经看到 (2) 和 (3) 都被称为“绝对 url”。哪个被正确称为“绝对 url”,另一个的正确名称是什么?
(参考相关标准或其他官方文档的奖励积分。)
javascript - How is a block used only for scoping called?
JavaScript has many types of block, such as while
blocks, if
blocks , for
blocks. ES6 introduces block scoping, so "purely semantic", "anonymous" blocks make sense:
What is the above type of block (used only for scoping) called?
nomenclature - 发生一次且几乎不会再次发生或无法重现的错误是什么?
一些“神秘”的错误只发生一次,然后它们要么永远不会发生,要么在数月或数年后发生。您无法重现它们,因为您不知道它们为什么会发生。此类错误是否有技术名称?
objective-c - 为可能按顺序/编号更改的事物列表命名变量的标准方法是什么?
基本上在我的程序中,我有一个问题列表。这些问题可能会改变,并且它们的顺序可能会在我的程序的后续版本中改变(这就是为什么在变量名中包含数字会很糟糕)。
命名将包含这些问题答案的变量的标准方法是什么?即,典型的命名法是什么?
截至目前,我正计划将它们命名为问题本身(也就是说,变量基本上是一个句子,哈哈);然而,有些问题很长,所以变量也会很长,所以看起来很荒谬。我认为这并不是一个大问题,除非我们改变问题的措辞。
我只是想让这段代码保持专业和健壮,这样当我将来回到它时,我知道事情在哪里并且很容易理解/调整。
(顺便说一句,我想我应该这样说,我知道变量的名称对程序没有影响大声笑,我只想知道命名这些变量以保持代码干净、高效的最佳方式,和可调)
谢谢!
编辑:另外,我会提到,这些“答案”变量都是我创建的一个名为 Answers 的类的属性,所以这就是我目前的组织方式。让我知道将它们放在更合适的其他类型的数据结构中是否更好,例如字典或其他东西。(我在 Objective-C 中编码)
编辑:另外,从技术上讲,我可以对问题的答案进行编号,并在未来需要时对其进行重构……这会导致任何不可预见的问题吗?
javascript - 是否有返回函数的 javascript 函数的名称?
Javascript 允许我们编写函数,使用它们的参数来构建和返回另一个(通常是匿名的)具有特定行为的函数。咖喱就是一个例子。
为了说明,这种方法可以用来优雅地对任意属性上的对象数组进行排序:
一般来说,是否有一个 Javascript 函数的词,它根据其参数返回另一个函数?
oop - 抽象和泛化有什么区别?
我知道抽象是指把一些更具体的东西变得更抽象。那东西可能是数据结构或过程。例如:
- 数据抽象:矩形是正方形的抽象。它专注于正方形有两对相对边的事实,而忽略了正方形的相邻边相等的事实。
- 过程抽象:高阶函数
map
是过程的抽象,它对值列表执行一些操作以生成全新的值列表。它专注于过程循环遍历列表的每个项目以生成新列表的事实,并忽略对列表的每个项目执行的实际操作。
所以我的问题是:抽象与泛化有何不同?我正在寻找主要与函数式编程相关的答案。但是,如果在面向对象编程中有相似之处,那么我也想了解这些。
c++ - 模板重新绑定与后期模板绑定或如何在类型中调用捎带支持模板
通常从概念上讲,模板必须作为类型参数传递,编译器会抱怨,因为这不是合法的 c++ - 至少在 c++11 之前并包括在内(更新 II:除了参见最后一个非专用模板定义示例)
这些概念经常被使用并且应该有一个名字。如果不清楚我的意思,请参阅下面的代码示例。
我的第一个想法是这也可以称为传递不完整的类型,但这是不正确的。另一位用户还表示,他对此一无所知,并随意将其命名为模板参数的后期绑定。我认为他的术语很好地形象化了这个概念。
我的问题是你如何正确地调用这背后的成语或涉及的模板?
更新Kerrek 建议将成语模板命名为 rebinding 。此名称仅呈现少数 google 搜索结果。但是我认为这也是一个很好的名字,因为标准分配器将它们相关的包装内部类称为rebind。
在以下示例中,您可以配置数据库是否使用map
或hashmap
内部:
或类似地
更新二:令我尴尬的是,我不知道以下解决方案,它只是将模板作为参数传递给模板实例化。在这种特殊情况下,传递非类型是合法的。
当然,欢迎使用其他方式重新绑定或后期绑定模板参数的示例。
oop - 命名法:OOP 中的类型关系
我熟悉 OOP 的实际方面。现在我正在写一份技术文档,我在质疑我对术语的使用。
采用这个类层次结构。每个类都有零个、一个或多个(多重继承)它直接派生的类。对于 B,这是 A。我会说 A 是 B 的基类或超类(可互换)。
相反,一个类可以有任意数量的直接派生自它的类。我想说 B 和 C 是 A 的派生类或子类,同样可以互换。
然而,还必须有一个术语来指代一个类直接或间接继承自的所有类。从 D 的角度来看,你会如何称呼 {A, B}?
而且我错过了直接或间接从一个类派生的所有类的另一个术语。从 A 的角度来看,你会如何称呼 {B, C, D, E}?
git - “git 数据库”到底是什么?
在讨论git
中提到所谓的“git 数据库”并不少见,但我一直无法(从上下文中)判断“git 数据库”是指.git
目录、.git/objects
目录还是.git/index
文件,或其他东西。
我敢肯定,不同的人,在不同的时间,用这个术语表示不同的东西,但我想知道“git 数据库”所指的内容是否有类似“官方”(或至少相当权威1 )的定义.
1例如,Torvalds 引用的“git 数据库是 xyz”对我来说是一个权威定义。