当前位置:  开发笔记 > 编程语言 > 正文

静态类型是否意味着如果要更改其类型,则必须转换变量?

如何解决《静态类型是否意味着如果要更改其类型,则必须转换变量?》经验,为你挑选了1个好方法。

除了'cast'之外,还有其他方法可以在Java和C++等静态类型语言中更改变量的类型吗?

我试图弄清楚动态和静态类型之间在实际上的主要区别是什么,并继续寻找非常学术性的定义.我想知道我的代码是什么意思.



1> Michael Borg..:

确保您不会因强类型与弱键入而混淆静态与动态类型.

静态类型:每个变量,方法参数,返回类型等都具有在编译时已知的类型,无论是声明的还是推断的.

动态类型:在编译时忽略/不存在类型

强类型:运行时的每个对象都有一个特定的类型,您只能对它执行为该类型定义的操作.

弱类型:运行时对象要么没有显式类型,要么系统会尝试在必要时自动转换类型.

这两个对立面可以自由组合:

Java是静态和强类型的

C是静态和弱类型(指针算术!)

Ruby是动态且强类型的

JavaScript是动态和弱类型的

一般来说,静态类型意味着编译器捕获了许多错误,这些错误是动态类型语言中的运行时错误 - 但这也意味着您花费大量时间担心类型,在许多情况下不必要地(参见接口与鸭子)打字).

强类型意味着类型之间的任何转换必须是显式的,通过强制转换或通过使用转换方法(例如将字符串解析为整数).这意味着更多的打字工作,但具有让你控制事物的优势,而弱的打字通常会导致混乱,当系统做一些模糊的隐式转换,留下一个完全错误的变量值,导致破坏十个方法调用线.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有