‘<‘,‘>‘有类型转换的作用

1.先上代码
//这是一个随机函数
randomPlay() {
let result = [];
let result1 = [];
setInterval(() => {
let labels = this.labels.slice(0);
for (

let i = 0; i < this.displayNum; i++)

{
let ran = Math.floor(Math.random() * (labels.length - i));
result.push(labels[ran]);
labels[ran] = labels[labels.length - i - 1];
}
result1 = result.slice(-this.displayNum);
let featureCollection =
window.FMap3D.transform.pointsCollection(result1);
this.labelLayer.setData(featureCollection);
}, 2000);
},
//这是一个顺序函数,选择几个点进行播放
eachPlay(number) {
// console.log(number, “111”);
let labels = this.labels.slice(0);
let index = 0;
let newArray = [];
while (index < labels.length) {
var number = Integer.valueOf(index);
console.log(typeof(index));
console.log(typeof(number));

    newArray.push(labels.slice(

index, (index += number))

);
}
console.log(newArray);
let i = 0;
let timer = setInterval(() => {
let featureCollection = window.FMap3D.transform.pointsCollection(
newArray[i]
);
this.labelLayer.setData(featureCollection);
i++;
console.log(newArray);
if (i > labels.length - 1) {
clearInterval(timer);
}
}, 2000);
},
从中可以看出,被引用的两块代码实现的逻辑是一样的,但是下面这块多了个string->number的强制类型转换,这是因为,随机函数里面的’<‘会先转换成数字再去判断,而顺序函数中的’+='如果是有一个是字符串有一个数字的话,会优先把数字转换成字符串,进行拼接。从而影响想要的循环效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MLIR 中,`patterns.add<>()` 是一个非常重要的函数,它用于将一个模式(Pattern)添加到 MLIR 的转换模式库(Pattern Library)中。转换模式库是 MLIR 中的一个重要概念,它包含了一系列的转换模式,这些转换模式可以被应用于 MLIR 中的操作(Operation)以实现程序的优化和转换。 `patterns.add<>()` 函数的作用是将一个模式添加到模式库中,这个模式可以被后续的编译器优化和转换所使用。`patterns.add<>()` 函数的参数是一个模式的类型,通常使用 C++ 的模板编程技术来实现。在使用 `patterns.add<>()` 函数时,我们需要指定一个匹配的操作类型(Matched Operation),以及一个用于匹配的模式(Pattern)。 例如,下面的代码演示了如何使用 `patterns.add<>()` 函数将一个模式添加到模式库中: ```c++ class MyPattern : public OpRewritePattern<MyOp> { public: using OpRewritePattern<MyOp>::OpRewritePattern; LogicalResult matchAndRewrite(MyOp op, PatternRewriter &rewriter) const override { // 匹配成功后,对操作进行转换 // ... } }; // 添加模式到模式库中 patterns.add<MyPattern>(&context); ``` 在上面的代码中,`MyPattern` 是一个自定义的模式,它继承自 `OpRewritePattern` 类。`OpRewritePattern` 是 MLIR 中用于表示模式的基类,它定义了模式匹配的接口。在 `MyPattern` 中,我们可以实现 `matchAndRewrite()` 方法,用于匹配操作并进行转换。最后,我们使用 `patterns.add<MyPattern>(&context)` 将 `MyPattern` 添加到模式库中。 总之,`patterns.add<>()` 是 MLIR 中用于构建模式库的关键函数,它可以让我们方便地添加自定义的转换模式,从而实现程序的优化和转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值