问题标签 [rationale]

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.

0 投票
6 回答
41892 浏览

c++ - C++14 变量模板:它们的目的是什么?有使用示例吗?

C++14 将允许创建模板化的变量。通常的例子是一个变量“pi”,可以读取它以获得各种类型的数学常数 π 的值(3 表示int;最接近的值可能与float等)

除了我们可以通过在模板化结构或类中包装变量来获得此功能,这如何与类型转换混合使用?我看到一些重叠。

除了 pi 示例之外,它如何与非常量变量一起使用?任何使用示例来了解如何充分利用此类功能及其目的是什么?

0 投票
1 回答
95 浏览

clojure - 为什么要使用文字字符构建 Clojure 字符串?

我刚才正在阅读一些代码,我遇到了这一行

这对我来说很奇怪。使用连续的文字字符,而不是包含这些字符的字符串。我会期待更多这样的事情:

但这是在一些可敬的 Clojure 资深人士编写的核心库中,这让我觉得也许是有原因的。什么原因?表现?或者是什么?

0 投票
1 回答
198 浏览

angularjs - 为什么 AngularJS 被认为是 MV*

我曾在后端(Rails)上使用 MVC,目前正在前端(Angular)上使用 MVC(MV*)。我已经看到 Angular 被认为是一种 MV* 模式,但为什么它被认为是这样呢?

使用 Angular,我理解关注点的分离,使用视图(模板)、控制器,并使用服务来提供数据。在这种情况下,通过 ng-model 的模型(数据存储)对于前端临时存储是有意义的,但实际的持久性(当对 API 进行 POST 或 PUT 时)似乎是通配符。由于数据可以持久化的方式,可以以不同的方式处理(数据库、firebase 等)。

根据我的理解,在我看来 *VC 更合适,因为 Angular 中的控制器比模型定义得更好。

MV* 模式一定有一些我遗漏或困惑的核心,任何澄清都非常感谢。

0 投票
1 回答
515 浏览

android - 为什么我们需要 Android 中的权限树?

在有关权限树的Android 文档中,我找不到任何permission-tree有用的使用场景。

现在我的脑海里有几个问题:

  1. 为什么我们需要permission-tree

  2. 有没有permission-tree必要的真实场景来说明?

  3. 是否有任何示例来演示客户端 App 如何请求permission-tree

0 投票
1 回答
458 浏览

c++ - C++14 元组按类型寻址——这不只是做出一个普遍无效的假设吗?

C++14 Wikipedia 页面描述了按类型寻址的元组的新语言特性,您可以使用它编写:

好吧,一般来说,这会失败,即在一般情况下,一个元组具有多个相同类型的元素。这是一种非常特殊(尽管我承认很常见)的元组,每种类型都有一个值;并且这种 get 类型暗示​​了get<T>(t)某种 的T-representation的语义t,就好像不同类型中的值在某种程度上是相关的。

为什么有这样一个方法是个好主意,它不适用于一般情况,并且似乎与某些相关,好吧,我猜你可以说元组的子类?

0 投票
2 回答
1237 浏览

python - 为什么 Python 的 str.partition 会返回分隔符?

str.partition我以三种方式在我的代码中使用 Python :

虽然我str.partition经常使用,但我一直想知道为什么它会返回分隔符。第一行肯定会受益于它返回分隔符,在我看来,第三行也会变得更直观。

虽然我承认可以用

我没有看到任何用例。

那么,在返回的元组中包含分隔符的基本原理是什么?

0 投票
2 回答
435 浏览

32bit-64bit - 在计算机中使用 32 位或 64 位处理器,为什么不使用 40 位或其他数字?

例如,在 32 位处理器的情况下,一个字是 4 字节长。是否也可以使用 5 字节字或其他字?

0 投票
1 回答
422 浏览

linux - 为什么 Linux 内核函数 filp_close 中的 posix 线程 id 可以为 NULL?

以下摘自linux内核:

文档说id是 posix 线程 id,它应该是current->files.

但是,我在 Linux 内核中发现了很多用法,例如acct_on,将其用作filp_close(filp, NULL)

我的问题是:

为什么调用时可以接受 NULL filp_close

争论的意图是什么id

0 投票
8 回答
4100 浏览

c - 为什么没有在`printf`中定义`float`的说明符?

看起来可能是这样,有(至少在 C99 中)长度修饰符可以应用于int: %hhd、和mean %hd、和. 甚至还有一个适用于:的长度修饰符。%ld%lldsigned charshortlonglong longdouble%Lflong double

问题是为什么他们省略了float?按照模式,它可能是%hf

0 投票
4 回答
535 浏览

c++ - 为什么具有推导返回类型的模板不能与它的其他版本重载?

为什么下面两个模板不兼容不能重载?

我认为它们(或多或少)与以下编译好的(因为我们不能这样做,decltype auto(t.size())我不能给出一个精确的等价物而没有一些噪音......)。

main.cpp:6:16: error: redefinition of 'f'但是,如果我不使用尾随返回类型,Clang 和 GCC 会抱怨。

(请注意,这是一个rationale问题。我不是在寻找标准中定义这种行为的位置——如果你愿意,你也可以在你的答案中包括它——而是为了解释为什么这种行为是可取的或现状)。