一旦我偶然发现带有 operator 的 php7 代码??=。我试图搜索,它清楚地做了什么,但无法轻松找到。我试图读出 php 操作符,甚至大多数官方资源都有所有操作符的描述,甚至像.=,这样的复合操作符+=,但没有描述??=
例如,PHP Operators保留了所有运算符的描述,如直接形式 ( ., +),复合形式 ( .=, +=),但没有??=,因此我首先感到困惑并认为这完全是另一回事。问题简单明了,但整个案例有点混乱,这就是为什么我试图帮助像我这样的其他 php 初学者
如果我们想在画布上绘制一些东西,我们需要获得它的2D上下文.我在项目的index.html中有一个canvas元素:
<body>
<canvas id="canv" width="200" height="200"></canvas>
</body>
Run Code Online (Sandbox Code Playgroud)
所以现在我需要访问该元素,好吧,让我们编写代码:
var cans:CanvasElement = Browser.document.getElementById("canv");
Run Code Online (Sandbox Code Playgroud)
在编译阶段我得到错误:
src/Main.hx:32:字符2-78:js.html.Element应该是js.html.CanvasElement
但是,如果我们使用不安全的铸造,已经很好了:
var cans:CanvasElement = cast Browser.document.getElementById("canv");
Run Code Online (Sandbox Code Playgroud)
一切正常,我可以访问并获得2D上下文或进行一些设置,如:
cans.width = cans.height = 800;
cans.style.backgroundColor = 'rgba(158, 167, 184, 0.4)';
Run Code Online (Sandbox Code Playgroud)
是的,我知道,"如果它有效 - 不要修复",我粗略地理解一切都是正常的,原则上我得到了我需要的东西,当得到演员,但是有人可以为我解释这个过程吗?这是什么意思 - js.html.Element应该是js.html.CanvasElement?我只是开始学习Haxe(特别是编程),我很高兴,我可以做可行的事情,但我想知道,为什么它在工作时起作用,为什么不起作用.