在计算机编程中打字学科

时间:2017-03-04 10:00:33

标签: types

我在维基百科中读到了类型系统。计算机编程有三种类型(强,弱和潜在)。但我不太了解。
一般来说 Java(int a = 0),因此java是强类型,因为它定义了类型(在这种情况下为整数)
php($ a = 0),php是弱类型。因为它没有定义的类型
python(a = 0),是强还是弱?但是wikipedia说python是强类型的 我想更多地了解打字纪律。

2 个答案:

答案 0 :(得分:0)

在根目录下,所有计算机变量都是位集合。问题是如何知道这些位是什么以及它们代表什么。

在强类型语言中,您告诉编译器位进入程序的位置,然后该类型“污染”它们,除非通过特殊转换操作,否则无法将它们分配给另一种类型的变量。此外,在每一点上,您都必须说出您期望的类型。

在弱类型语言中,这些位也被标记,但不是“污染”这些位,而是与它们一起移动 - 通常因为变量的基础是基本维度,类型字段,结构成员名称字段等等。所以你不必说出你期望的类型。你可以拥有所谓的鸭子打字。如果变量有一个名为“quack”的字段,你可以写“Quack + = 1.0”,并且就所有意图和目的而言,它都是鸭子,即使它被设置为医生。

潜在类型语言是值而不是变量保持类型的语言。 S而不是说

  int x = 5;
你说          x = 5; // x是整数类型

     x = "five"; // x is a string type

答案 1 :(得分:0)

您尝试建立的定义不正确。强类型意味着在分配任何值之前不明确定义变量的类型,但这有点不同。这意味着我们可以为数据指定一种类型,但不能将其用作另一种类型,因此值的类型不会以意外的方式更改。每次更改类型都需要进行显式转换。