Даже если в другом ответе использовалось parseInt
, лучше хранить переменные внутри кода
var x = 0;
var y = 0;
document.onkeydown = function(key){
if (key.keyCode == 38){
y -= 10;
} else if (key.keyCode == 39){
x += 10;
} else if (key.keyCode == 37){
x -= 10;
} else if (key.keyCode == 40){
y += 10;
};
document.getElementById("block").style.left = x+"px";
document.getElementById("block").style.top = y+"px";
};
#block
{
top: 0;
left: 0;
position: absolute;
width: 30px;
height: 60px;
background: teal;
}
<div id="block">
You can define the constants in a companion object:
object Task {
val EmptyID = 0
val EmptyDescription = "No Description"
}
And then reference them as Task.EmptyID and Task.EmptyDescription.
I think Scala 2.8 has support for default values.
В разделе «Программирование в Scala» см. Раздел 6.7, где объясняется цепочка вызовов конструктора. Основной конструктор описывается как «единая точка входа в класс».
См. Герман для ответа. Это происходит потому, что конструктор технически является частью статической области видимости. Другими словами, конструктор не может получить доступ ни к каким членам экземпляра, потому что экземпляр еще не был создан. Любые «члены класса» на самом деле являются членами экземпляра, поэтому код в вопросе не работает. Ответ Германа исправляет это, перемещая два соответствующих значения в объект-компаньон, что фактически делает их статическими членами класса Task
(не совсем, но вы можете думать об этом так).