问题标签 [primitive]

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 投票
3 回答
2041 浏览

java - 确定十进制值的最快最有效方法是Java中的整数

给定一个名为sizeValue并且sizeValue包含非 0 的双精度变量,确定sizeValue包含整数值的最有效方法是什么?

目前我正在使用

大小值 % 1 == 0

还有其他更快的方法吗?

0 投票
7 回答
183 浏览

java - 关于原语的快速问题

由于我的坏例子而编辑了这个问题。这是我更新的问题:

以下在速度和内存分配方面是否相等:

0 投票
3 回答
7425 浏览

c# - Java 和 C# 中的原始类型是否不同?

我正在手动将代码从 Java 转换为 C#,并与(我称之为)原始类型(参见,例如Do autoboxing 和 unboxing 在 Java 和 C# 中表现不同)作斗争。从答案中我了解到double(C#) 和Double(C#) 是等效的,并且double(C#) 也可以在容器中使用,例如作为字典中的键。但是,double(Java)不能在像 HashMap 这样的容器中使用,这就是它被自动装箱到Double(Java)的原因。

  1. double(C#) 是原语还是对象?
  2. 如果它是原始的,是什么使它的行为与double(Java)不同?

double(C#) 不能设置为 null,除非它是 made nullable

  1. (C#)是否double?等同于Double(Java)?它们都被称为对象吗?

(在这个讨论中使用术语“第一类对象”有用吗?)

0 投票
2 回答
5308 浏览

c# - Java和C#中“原始”、“值类型”、“结构”、“类”、“包装”的定义

我一直试图了解 Java 和 C# 中“原语”的使用以及它们之间的区别(如果有的话)。我已经就 SO 提出了一系列问题,其中一些答案似乎混淆了这个问题,而不是澄清它。一些答案(和一些 MS 文档)似乎提供了相互矛盾的陈述。从 SO

并来自 MS: http: //msdn.microsoft.com/en-us/library/ms228360%28VS.80,lightweight%29.aspx - “结构与类非常相似” - “Int32类包装int数据类型” - “另一方面,C# 中的所有原始数据类型都是 System 命名空间中的对象。对于每种数据类型,都提供了一个短名称或别名。例如,int是 System.Int32 的短名称”。

我的困惑主要在于 C#(我已经编写了一段时间的 java 程序)。

编辑@Jon Skeet 已确认以下段落是正确的

  • Java 有两种类型(原始类型和类)。“值类型”这个词可能是原始(尽管没有广泛使用)的同义词,也是类的“引用类型”的同义词。Java 在类 (Integer) 中“包装”原语 (int),这些类具有任何其他类的完整功能(可以为 null,用于集合等)

编辑@Jon 对 C# 给出了非常明确的声明,所以我将删除我建议的事实并参考他的回答。

进一步的问题:对于这些术语的实际使用应该是什么达成共识?如果有共识,我将非常感谢明确说明。否则,我认为术语是混乱的,因此用途有限。

总结感谢您提供非常明确的答案。真正理解这一点的人达成了共识(参见@Jon 接受的答案),MS 文档是一致的(尽管他们在某些地方提到了 Java,而我误读了这些 C#)

0 投票
2 回答
1428 浏览

c# - .NET 原语和类型层次结构,为什么要这样设计?

我想了解为什么在 .NET 上有九种整数类型:Char, Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, 和UInt64; 加上其他数字类型:Single, Double, Decimal; 所有这些类型都没有任何关系。

当我第一次开始用 C# 编码时,我想“很酷,有一种uint类型,当不允许使用负值时,我将使用它”。然后我意识到没有使用 API uint,而是使用了 API int,并且它uint不是从 派生的int,因此需要进行转换。

这些类型的实际应用是什么?为什么不具有,而不是integerpositiveInteger?这些是我能理解的类型。一个人的年龄(以岁为单位)是 a positiveInteger,并且因为positiveInteger是一个子集,integer所以无论何时integer都需要转换。

下面是 XPath 2.0 和 XQuery 1.0 中的类型层次结构图。如果你往下看,xs:anyAtomicType你可以看到数字层次结构decimal> integer> long> int> short> byte。为什么.NET 不是这样设计的?新框架“奥斯陆”会有什么不同吗?

替代文字

0 投票
1 回答
2250 浏览

java - 当类已知时创建(装箱)原始实例

我需要一个返回所提供类类型实例的方法。让我们假设提供的类型仅限于可以创建它们的“空”实例。例如,提供String.class将返回一个空字符串,提供一个Integer.class将返回一个初始值为零的整数,等等。但是我如何动态创建(盒装)原始类型?像这样?

是遍历所有可能的原始类型的唯一解决方案,还是有更直接的解决方案?请注意,两者

抛出一个InstantiationException(因为它们没有空构造函数)。

0 投票
2 回答
1208 浏览

c++ - 有没有在 openCL 之上构建的好的 3rd 方库?

我特别考虑处理原语,如 FFT、卷积、相关、矩阵数学、任何类型的机器视觉原语。我一直没能在这些方面找到任何东西,有人知道有什么好的项目如雨后春笋般涌现吗?

0 投票
6 回答
15988 浏览

c - 用C画一个多边形

我需要在给定 2 个点(他的顶点的中心和 1 个顶点)的情况下绘制一个“n”边的多边形,只是我在数学上很烂。我读了很多书,所有这些都是我能够理解的(我不知道它是否正确):

好的,我用毕达哥拉斯定理取两点(半径)之间的距离:

以及这2点与atan2之间的角度,如下所示:

其中 xc, yc 是中心点,x, y 是唯一知道的顶点。

有了这些数据,我会:

问题是程序不能正常工作,因为它绘制的线条不像多边形。

有人怎么知道足够的数学来帮忙?我正在使用 C 和 turbo C 在这个图形基元中工作。


编辑:我不想填充多边形,只需绘制它。

0 投票
2 回答
10196 浏览

c - 洪水填充算法

我正在使用 turbo C++ 在 C 语言中的一个简单图形库中工作,因为我正在开发一个非常原始的绘画风格程序版本,一切都很好,但我无法让洪水填充算法工作。我使用 4 路洪水填充算法,首先我尝试使用递归版本,但它只适用于小区域,填充大区域使其崩溃;阅读我发现实现它的显式堆栈版本可以解决问题,但我并没有真正看到它。

我开发了一个这样的堆栈:

这是我对洪水填充功能所做的代码:

但它仍然不起作用,当我试图填充大面积区域时它会停止,因为我在我的程序中使用分辨率 640 X 480 这真的是个问题;任何想法为什么它不起作用?

0 投票
4 回答
71146 浏览

java - 检查原始字段的类型

我正在尝试确定对象上字段的类型。我不知道传递给我的对象的类型,但我需要找到longs 的字段。区分盒装的 s 很容易,Long但原语long似乎更难。

可以确保传递给我的对象只有Longs,而不是原语,但我宁愿没有。所以我所拥有的是:

一种似乎可行的hacky方式是:

如果有的话,我真的很想要一种更清洁的方法来做到这一点。如果没有更好的方法,那么我认为要求我收到的对象仅使用Long(not long) 将是一个更好的 API。

有任何想法吗?