【问题标题】:Re-assigning variable types/values in "strong" code languages用“强”代码语言重新分配变量类型/值
【发布时间】:2015-12-14 18:34:56
【问题描述】:

我最近出版了一本关于 Python 的书,其中详细介绍了 Python 动态重新分配变量类型(int、str、float 等)的能力,这是 Python 的优势之一(就我而言知道的)。

但是,在其他编程语言(例如 C 和 Java)中并非如此。据我所知,您必须首先声明变量的类型,例如int或str,然后然后为其赋值。

有没有办法重新分配该变量的类型,比如您是否要先删除它的值?

【问题讨论】:

  • 你为什么要这样做而不是仅仅使用另一个变量?一种反映变量应该具有的不同类型和不同含义的变量?
  • 请注意,@killhooligan,Python 用 C 语言编写是有充分理由的,而不是相反。一方面,静态数据类型为优化计算和存储提供了更多机会。
  • 当然,使用Object 输入所有内容:)

标签: java python c variables


【解决方案1】:

C 变量可以保存的值的类型是该变量的固定特征。更一般地说,C 中的每个表达式都有一个数据类型,可以仅根据包含程序的源代码来确定。 C 具有将 values 从一种类型转换为另一种类型的机制,但这是另一回事。 (此外,“转换”一个值应该理解为接受输入值并产生不同输出值的操作,而不是就地修改单个值。同样的区别也适用于 Python。)

C 还支持为不同类型的成员值提供重叠存储的数据类型(“联合”)。具有这种类型的变量可以被认为能够在不同时间包含不同类型的值。它们可以包含的特定类型是预先指定的,但是不能更改。

另一方面,在Python中,数据类型不是变量的特征,但它仍然是值的特征。每个 Python 值都有一个永远不会改变的特定类型,但您可以将变量的值替换为不同类型的值。

【讨论】:

    【解决方案2】:

    C 和 Java 都是强类型语言。一旦定义了类型,它就不会改变。因此,编译器能够在所有表达式中执行类型检查,以确保在其所在的上下文中使用正确的类型。

    在某些情况下,您可以使用类型转换在一种类型和另一种类型之间切换,但这些是例外而不是规则。

    【讨论】:

    • 你的意思是“静态类型”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2016-06-16
    • 2020-06-25
    相关资源
    最近更新 更多