博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Hack与HHVM权威指南》——1.6.1 没有类型的变量
阅读量:6264 次
发布时间:2019-06-22

本文共 526 字,大约阅读时间需要 1 分钟。

本节书摘来自华章出版社《Hack与HHVM权威指南》一书中的第1章,第1.6.1节,作者 Owen Yamauchi,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.6.1 没有类型的变量

在大多数静态类型的语言之中,一个本地变量出现后就会被定义为某种类型。然后,这个变量将在整个生命周期内保存这种类型的值。本例中的代码可以是C++或者Java,不论哪种情况,这里都会引发一个类型错误。因为x被声明为一个int类型,所以永远不能把非int类型的值赋值给它:

int x = 10;
x = "a string"; // 错误
这并不是一个Hack中的例子,就像PHP一样,本地变量在Hack中可以不用声明类型,你可以简单地通过赋一个值给它来创建一个本地变量。你还可以对任何本地变量赋值新的值,而不用在意这个本地变量原本的类型是什么:
$x = 10;
$x = "a string"; // 正确
关键的不同点是:在Hack中,本地变量本身是没有类型的,它所存放的值是有类型的。
在本程序中的每个点上,类型检查器都知道在那个点每个变量所存放的值的类型。如果它发现一个新的值被赋给了这个变量,那么它将及时更新关于这个变量存放的值类型的知识点。

转载地址:http://myupa.baihongyu.com/

你可能感兴趣的文章
传输方式
查看>>
Linux 进程间通信
查看>>
当鼠标点击label文字是光标跳到相应的input中
查看>>
mysql
查看>>
使用 IDEA 创建多模块项目
查看>>
java多态
查看>>
ffmpeg编译常规大全
查看>>
JS异步编程 XHR的用法
查看>>
poj2367 拓扑序
查看>>
C++中的集合和字典
查看>>
自动化管理之新人培养
查看>>
linux 文件上传&软件安装(rpm)
查看>>
iOS 12 越狱支持 Cydia
查看>>
Android中远程Service浅析
查看>>
面向对象的标准库(续)
查看>>
scrollHieght、offsetHeight、clientHeight、width、height
查看>>
面向对象 三大特性
查看>>
Tomcat配置Web默认页面
查看>>
idea phpstorm webstorm等的配置问题
查看>>
bzoj 3501 PA2008 Cliquers Strike Back——贝尔数
查看>>