Отступы - ваш друг, ваши функции также являются обратными вызовами, они выполняются только тогда, когда событие инициируется элементом, с которым они связаны
let number = 0;
function increase() {
document.getElementById("number").innerHTML = number += 1;
}
function double() {
if (number >= 50) {
for (var i = 0; i < 2; i++) {
increase();
}
}
}
.button1border {
border: black 3px solid;
margin: 10px 1280px 0px 0px;
width: 60px;
}
[ 112] Одна из приятных особенностей R - то, что вы можете просматривать источник многих functions:
> dev.off
function (which = dev.cur())
{
if (which == 1)
stop("cannot shut down device 1 (the null device)")
.Internal(dev.off(as.integer(which)))
dev.cur()
}
<environment: namespace:grDevices>
Так что он вызывает .Internal (dev.off (...))
и затем возвращает dev.cur (), что, я полагаю, было бы полезно, если у вас открыто несколько устройств, так что вы знаете, который стал активным. Вы можете использовать .Internal (dev.off (as.integer (dev.cur ())))
в своем скрипте или даже исправить dev.off
, чтобы вернуть только значение DEV.
For no good reason I'm aware of, dev.off()
, unlike device related functions like png()
returns a value: "the number and name of the new active device." That value is what's being echoed to stdout.
Suppressing it can thus be achieved by just putting it somewhere, i.e.,
garbage <- dev.off()
Другим вариантом будет использование sink ()
и вывод всего в файл журнала, поэтому при необходимости вы можете проверить работоспособность участков.
Вместо этого вы можете использовать littler , что является а) более простым способом написания сценариев R и б) подавляет вывод, поэтому вы получаете побочный эффект того, что dev.off является silent:
$ foo.r /tmp/foo.txt /tmp/foo.png
Plotting /tmp/foo.txt to /tmp/foo.png
$ cat /tmp/foo.r
#!/usr/bin/r
cat("Plotting", argv[1], "to", argv[2], "\n")
input <- read.table(argv[1])
png(argv[2])
plot(as.numeric(input[1,]))
dev.off()
$
Rscript, вероятно, тоже будет работать; Я предпочитаю поменьше.