Questions tagged «data-types»

4
“长期”禁令有意义吗?
在当今的跨平台C ++(或C)世界中,我们拥有: Data model | short | int | long | long long | pointers/size_t | Sample operating systems ... LLP64/IL32P64 16 32 32 64 64 Microsoft Windows (x86-64 and IA-64) LP64/I32LP64 16 32 64 64 64 Most Unix and Unix-like systems, e.g. Solaris, Linux, BSD, and OS X; z/OS …

20
静态类型值得权衡吗?
我主要是在没有类型安全性的地方开始使用Python进行编码,然后转移到存在C#和Java的地方。我发现我可以用Python更快地工作并且减轻头痛,但是再说一次,我的C#和Java应用程序的复杂性要高得多,所以我从未想过要对Python进行真正的压力测试。 Java和C#阵营听起来好像没有适当的类型安全性,大多数人会碰到各种可怕的错误,这比它的价值还要麻烦。 这不是语言比较,因此请不要解决编译与解释之类的问题。类型安全是否值得在开发速度和灵活性方面受到打击?为什么? 对于想要一个例子的人来说,动态打字速度更快: “在开发过程中使用动态类型的语言。它可以为您提供更快的反馈,周转时间和开发速度。” - http://blog.jayway.com/2010/04/14/static-typing-is-the-root-of-all-evil/

16
我应如何在变量中存储“未知”和“缺失”值,同时仍保留“未知”和“缺失”之间的差异?
将此视为“学术”问题。我一直想知道不时避免使用NULL,这是我无法提出令人满意的解决方案的一个示例。 假设我将测量值​​存储在有时无法测量(或丢失)的地方。我想将“空”值存储在变量中,同时避免使用NULL。其他时候,该值可能是未知的。因此,有了特定时间范围内的测量值,有关该时间段内测量值的查询可能会返回3种响应: 当时的实际测量值(例如,包括在内的任何数值0) “缺失” /“空”值(即已完成测量,并且已知该点为空)。 未知值(即,此时未进行任何测量。它可以为空,但也可以为任何其他值)。 重要说明: 假设您有一个get_measurement()返回“空”,“未知”和类型为“整数”的值的函数。具有数值意味着可以对返回值执行某些运算(乘法,除法...),但是如果对这些运算符使用NULL,则如果不捕获它们,则会使应用程序崩溃。 我希望能够编写代码,例如避免使用NULL检查(伪代码): >>> value = get_measurement() # returns `2` >>> print(value * 2) 4 >>> value = get_measurement() # returns `Empty()` >>> print(value * 2) Empty() >>> value = get_measurement() # returns `Unknown()` >>> print(value * 2) Unknown() 请注意,所有print语句均未引起异常(因为未使用NULL)。因此,空值和未知值将根据需要传播,并且可以将值实际上是“未知”还是“空”的检查推迟到真正需要之前(例如在某个地方存储/序列化值)。 旁注:我想避免使用NULL的原因主要是脑筋急转弯。如果我想完成工作,我不反对使用NULL,但是我发现避免使用NULL可以使代码在某些情况下更加健壮。

9
通过为每列设置预定义的数据类型,关系数据库能获得什么?
我现在正在使用SQL数据库,这一直使我感到好奇,但是Google搜索的机会并不多:为什么使用严格的数据类型? 我了解为什么会有几种不同的数据类型,例如区分二进制数据和纯文本数据很重要。现在,我知道将二进制数据存储为自己的格式比将二进制数据的1和0格式存储为纯文本要好得多。 但是我不明白的是拥有这么多种不同的数据类型的好处是什么: 为什么mediumtext,longtext和text? 为什么decimal,float和int? 等等 告诉数据库“此列的条目中只有256个字节的纯文本数据”有什么好处。或“此列最多可以包含16,777,215字节的文本条目”? 这是性能优势吗?如果是这样,为什么在事前知道条目的大小对性能有何帮助?或更确切地说是其他东西吗?



8
基本数据类型是什么意思?
我对原始数据类型的理解是 它是语言隐式提供的数据类型(其他是用户定义的类) 因此,不同的语言具有不同的数据类型集,这些数据类型被认为是该特定语言的原始数据类型。那正确吗? “基本数据类型”和“内置数据类型”之间有什么区别?维基百科说原始数据类型是这两者之一。 PS-为什么在SNOBOL4中而不是Java中将“字符串”类型视为原始类型?
42 data-types 


14
列表可用时,是否有理由使用数组?[关闭]
List<T>在C#中,似乎可以完成数组可以做的所有事情,并且还可以完成更多工作,并且在内存和性能上也与数组一样高效。 那么,为什么我要使用数组呢? 我显然不是在问API或其他外部约束(即Main函数)需要我使用数组的情况……我只是在问关于在自己的代码中创建新数据结构的问题。
30 c#  data-types 

8
在API请求/响应中使用空字符串,null或删除空属性
通过API传输对象时(如无模式JSON格式),返回不存在的字符串属性的理想方法是什么?我知道这样做的方式有很多,如下面列出的链接中的示例所示。 避免为空 传回null 删除空属性 我确定我过去曾经使用过null,但是没有足够的理由这样做。在处理数据库时,直接使用null似乎很简单。但是数据库似乎是一个实现细节,不应与API另一方有关。例如,他们可能使用无模式数据存储,该模式仅存储具有值的属性(非null)。 从代码的角度来看,将字符串函数限制为仅适用于一种类型(即string(非null))可以使它们更易于证明;避免null也是拥有Option对象的原因。因此,如果产生请求/响应的代码不使用null,那么我猜想API另一侧的代码也不会被强制使用null。 我更喜欢使用空字符串作为避免使用null的简便方法的想法。我听说过使用null并针对空字符串的一个论点是,空字符串表示该属性存在。尽管我理解了区别,但我也想知道这是否只是实现细节,使用null或空字符串是否会在实际生活中带来任何区别。我也想知道空字符串是否类似于空数组。 那么,解决这些问题的最佳方法是什么?它是否取决于要传输的对象的格式(schema / schemaless)?

9
为什么没有真正的“仅日期”数据类型?
我不得不为真正“只是一天”的数据集使用DateTime值而感到非常荒唐。生日是最常见的例子,但这总是在业务应用程序中出现。 我已经习惯于将“仅日期”记录的“时间”部分设置为“中午”(这避免了无论时区如何更改日期)。这似乎是一种hack,我将永远从初级开发人员那里找到解决此问题的错误。 时间总是相对于固定点的。4PM是子午线或正午后4个小时。太阳的最高传播点是可观察到的,它使我们能够建立坐标系。自1970年1月1日起,中午(安特子午线)前3个小时,中午后2小时(1441899402938毫秒)。对于在笛卡尔世界中成长的人们来说,这是第二自然。 但是我们的日历早于笛卡尔。我的论点是,可以更恰当地将其视为应用了模函数的枚举。星期一跟随星期日,依此类推,直到周日跟随星期六。没有正负,它是模数或绝对值。 同样,重复多年。每隔365天(或大约365天)对我来说有几天特别的日子:生日,周年纪念日,孩子们的生日等。业务调度应用程序每隔7天,每月的第一个星期二等等都有大量的会议示例。我们可以将其映射到浮点数,实际上将其映射到所述浮点数可以解决很多旧方法确实很难解决的问题,但这并不意味着它是唯一的方法。 意识到并理解使用DateTimes存储日期的“圆角方孔”性质使您成为更好的程序员。 在定义Date类时,是否有明确打算用作计划应用程序的应用程序中有值,还是“将所有时间设置为中午”是最佳方法?使用DateTime并将Time组件设置为Noon可能会有什么问题?这样的方法可以解决时区偏移吗?我使用过MomentJS,但我认为那是更好的Date类。

3
词法分析器返回其解析器的令牌的数据类型应该是什么?
如标题中所述,词法分析器应返回/提供解析器哪种数据类型?在阅读Wikipedia 的词法分析文章时,它指出: 在计算机科学中,词法分析是将一系列字符(例如在计算机程序或网页中)转换为一系列标记(具有已标识“含义”的字符串)的过程。 但是,与上述说法完全矛盾的是,当我在另一个站点上问过另一个问题(“代码审查”,如果您很好奇)得到回答时,回答者表示: 词法分析器通常读取字符串,并将其转换为词位流。词素只需要是一串数字。 他给了这个视觉效果: nl_output => 256 output => 257 <string> => 258 稍后,在他提到的文章中Flex,他已经存在一个词法分析器,并说用它编写“规则”比手工编写词法分析器更简单。他继续给我这个例子: Space [ \r\n\t] QuotedString "[^"]*" %% nl_output {return 256;} output {return 257;} {QuotedString} {return 258;} {Space} {/* Ignore */} . {error("Unmatched character");} %% 为了进一步了解并获得更多信息,我阅读了有关Flex的Wikipedia文章。Flex文章显示,您可以通过以下方式使用令牌定义一组语法规则: digit [0-9] letter [a-zA-Z] %% "+" { return PLUS; } …
21 data-types  lexer  flex 

24
编程语言中有趣或独特的类型?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我们都看到过整数,浮点数,字符串和偶数十进制类型。您遇到过的最奇怪,独特或有用的类型有哪些?

7
为什么Java具有不同大小数字的原语?
在Java中有原始类型byte,short,int并long和同样的事情float和double。为什么必须要由一个人来设置原始值应使用多少个字节?是否只能根据传入的数字大小来动态确定大小? 我能想到的原因有两个: 动态设置数据大小将意味着它也需要能够动态更改。这可能会导致性能问题吗? 也许程序员不希望某人能够使用比特定大小更大的数字,并且这使他们受到限制。 我仍然认为通过使用单个int和float类型进行简单操作可能会获得很多收益,是否有特定的原因导致Java决定不走这条路?

4
为什么我们必须提到C中变量的数据类型
通常在C语言中,我们必须在变量声明中告诉计算机数据的类型。例如,在下面的程序中,我要打印两个浮点数X和Y的总和。 #include<stdio.h> main() { float X=5.2; float Y=5.1; float Z; Z=Y+X; printf("%f",Z); } 我不得不告诉编译器变量X的类型。 编译器不能自行确定其类型X吗? 是的,我可以这样做: #define X 5.2 现在,我可以编写程序而无需告诉编译器Xas 的类型: #include<stdio.h> #define X 5.2 main() { float Y=5.1; float Z; Z=Y+X; printf("%f",Z); } 因此,我们看到C语言具有某种功能,通过它可以自行确定数据类型。就我而言,它确定X为float类型。 在main()中声明某些内容时,为什么还要提及数据类型?为何编译器无法main()像in中那样自行确定变量的数据类型#define。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.