Skip to content

Instantly share code, notes, and snippets.

@yimajo
Last active October 29, 2021 10:15
Show Gist options
  • Save yimajo/d5c2389a0d560f1a1799f1d98f549d47 to your computer and use it in GitHub Desktop.
Save yimajo/d5c2389a0d560f1a1799f1d98f549d47 to your computer and use it in GitHub Desktop.
たまにvarを使いたいときクロージャ内にvarを置けば安心かも(ループ編)
let largeArray = ...
...
let (array1, array2) = { array -> ([Object], [Object])
var array1: [Object] = []
var array2: [Object] = []
array.forEach {
if $0.type == .nanika {
array1.append($0)
} else {
array2.append($0)
}
}
return (array1, array2)
}(largeArray)
state1.array = array1
state2.array = array2
@yimajo
Copy link
Author

yimajo commented Oct 29, 2021

単にvarの寿命が長いと不安みたいなことだとしたら、こんなことしなくてもdo {} のスコープ作ればいいだけか。catchしないdo

let largeArray = ...
...
do {
    var array1: [Object] = []
    var array2: [Object] = []
    largeArray.forEach {
        if $0.type == .nanika {
            array1.append($0)
        } else {
            array2.append($0)
        }
    }
    state1.array = array1
    state2.array = array2
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment