Swift ++& - 已弃用。循环的替代方法

时间:2016-03-25 16:43:28

标签: swift loops

++和 - 自最新版本起已在swift中弃用,将在Swift 3中删除。

我有这个目前正在运行的代码,我想要更新,但我不知道如何重写它。任何帮助将不胜感激。

for var i = 2; i <= remarkIndex; ++i {
    if containsWind(metarArray[i]) {
        metarDict.updateValue(metarArray[i], forKey: "winds")
    }
}

我意识到Swift喜欢制作循环的方式不同,但我对此缺乏经验。当我编写所​​有这些代码时,我只使用了我习惯的C ++方式。想要有一个例子我明白我可以在我的代码中应用。

2 个答案:

答案 0 :(得分:3)

为了完整起见,让我们为内部块显示更实用的方法:

metarArray[2...remarkIndex]
   .filter(containsWind)
   .forEach { metarDict.updateValue($0, forKey: "winds") }

答案 1 :(得分:2)

像这样:

function srcSwap(target) {
  var ivo = target.attr("src");
  console.log(ivo);
  target.attr("src", 'https://upload.wikimedia.org/wikipedia/commons/f/f6/Zeta_Puppis.png');
}

$(function() {
  $("#sortable").sortable({
    revert: true,
  });

  $("#draggable").draggable({
    connectToSortable: "#sortable",
    helper: function(e) {
      var $c = $(e.target).parent().clone();
      $c.find("img").on("click", function() {
        srcSwap($(this));
      });
      return $c;
    },
    revert: "invalid"
  });

  $("ul, li").disableSelection();

  $(".img-responsive").on("click", function() {
    srcSwap($(this));
  });
});

这是你应该一直在做的事情。

但是,由于您要对for i in 2...remarkIndex 做唯一的事情是索引到i,因此循环至metarArray 本身会更好:

metarArray

无需索引!