Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types 计算机程序设计中的打字训练_Types - Fatal编程技术网

Types 计算机程序设计中的打字训练

Types 计算机程序设计中的打字训练,types,Types,我在维基百科上读到了关于类型系统的内容。计算机编程有三种类型(强、弱和潜在)。但我不太明白。 总的来说 Java(inta=0),所以Java是强类型,因为它定义了类型(本例中为整数) php($a=0),php是弱类型。因为它没有定义类型 python(a=0),它是强还是弱?但是维基百科说python是强类型。 我想更多地了解打字规则。从根本上讲,所有计算机变量都是位的集合。问题是如何知道位是什么以及它们代表什么 在强类型语言中,当位进入程序时告诉编译器,然后该类型“污染”它们,除非通过特殊

我在维基百科上读到了关于类型系统的内容。计算机编程有三种类型(强、弱和潜在)。但我不太明白。
总的来说
Java(inta=0),所以Java是强类型,因为它定义了类型(本例中为整数)
php($a=0),php是弱类型。因为它没有定义类型
python(a=0),它是强还是弱?但是维基百科说python是强类型。

我想更多地了解打字规则。

从根本上讲,所有计算机变量都是位的集合。问题是如何知道位是什么以及它们代表什么

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

在弱类型语言中,位也会被标记,但它不会“污染”位,而是随位移动——通常是因为变量的底层是矩阵维度、类型字段、结构成员名称字段等等。所以你不必说你想要什么类型的。你可以进行所谓的鸭子式打字。如果变量有一个名为“嘎嘎”的字段,则可以写入“嘎嘎+=1.0”,并且无论出于何种目的,它都是鸭子,即使它被设置为医生

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

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

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

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

可能重复@TDG,我不想了解python。我想知道打字的纪律。