这可能是Xtend上最愚蠢的问题。但在这里它
我试图将以下内容转换为Xtend
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
/* normalized sinc function */
double sinc(double x)
{
x *= M_PI;
if (x == 0.0) return 1.0;
return sin(x)/x;
} /* sinc */
/* interpolate a function made of in samples at point x */
double sinc_approx(double in[], size_t in_sz, double x)
{
int i;
double res = 0.0;
for (i = 0; i < in_sz; i++)
res += in[i] * sinc(x - i);
return res;
} /* sinc_approx */
/* do the actual resampling. Change (in_sz - 1)/(out_sz - 1) if you
* don't want the initial and final samples coincide, as is done here.
*/
void resample_sinc(
double in[],
size_t in_sz,
double out[],
size_t out_sz)
{
int i;
double dx = (double) (in_sz-1) / (out_sz-1);
for (i = 0; i < out_sz; i++)
out[i] = sinc_approx(in, in_sz, i*dx);
}
/* test case */
int main()
{
double in[] = {
0.0, 1.0, 0.5, 0.2, 0.1, 0.0,
};
const size_t in_sz = sizeof in / sizeof in[0];
const size_t out_sz = 5;
double out[out_sz];
int i;
for (i = 0; i < in_sz; i++)
printf("in[%d] = %.6f\n", i, in[i]);
resample_sinc(in, in_sz, out, out_sz);
for (i = 0; i < out_sz; i++)
printf("out[%.6f] = %.6f\n", (double) i * (in_sz-1)/(out_sz-1), out[i]);
return EXIT_SUCCESS;
} /* main */
我知道我需要使用if (obj instanceof Integer) {
message.reply((Integer)obj);
}
函数。
我可以使用typeof
作为typeof
的直接替代品吗?
答案 0 :(得分:4)
instanceof
是检索类对象的旧语法。如果您正在使用较新版本的Xtend,则不再需要此版本。除此之外,if (obj instanceof Integer) {
message.reply(obj as Integer)
}
语法与Java类似,但是cast语句不同,所以你会写:
if (obj instanceof Integer) {
message.reply(obj) // obj is automatically casted to Integer
}
由于支持Xtend 2.5自动播放,因此您甚至可以编写:
var period = 1000;
setInterval(ChangeBG, period);
function ChangeBG() {
document.getElementById("divID").style.backgroundColor =
rgb(GetRandomValidNumber(), GetRandomValidNumber(), GetRandomValidNumber());
}
function GetRandomValidNumber() {
return (Math.floor(Math.random() * 255) + 1);
}