Top Banner
33

Swift3.0に向けて enumerateを使い始めよう

Jan 08, 2017

Download

Mobile

Motoki Narita
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Swift3.0に向けて enumerateを使い始めよう
Page 2: Swift3.0に向けて enumerateを使い始めよう

自己紹介

• @mo_to_44

• 株式会社ネクストで  HOME’Sという 不動産検索アプリのiOSエンジニアをやっています

Page 3: Swift3.0に向けて enumerateを使い始めよう

個人でもアプリ作ってます

  リボカメ - Revolver Camera

• リボルバーを模したUI

• フィルターをリアルタイムで切り替え、確認できる

• Apple Watch対応

Page 4: Swift3.0に向けて enumerateを使い始めよう

swift-evolutionhttps://github.com/apple/swift-evolution

Page 5: Swift3.0に向けて enumerateを使い始めよう

Swift 3.0 proposal

• https://github.com/apple/swift-evolution/tree/master/proposals から見ることができる

• 0004 と 0007 が気になった

Page 6: Swift3.0に向けて enumerateを使い始めよう

0004: Remove the ++ and -- operatorsStatus: Accepted

Page 7: Swift3.0に向けて enumerateを使い始めよう

0007: Remove C-style for-loops with conditions and incrementers

Status: Under review (December 7, 2015 -- December 10, 2015)

Page 8: Swift3.0に向けて enumerateを使い始めよう

Today

Page 9: Swift3.0に向けて enumerateを使い始めよう
Page 10: Swift3.0に向けて enumerateを使い始めよう
Page 11: Swift3.0に向けて enumerateを使い始めよう

0007: Remove C-style for-loops with conditions and incrementers

Status: Accepted

Page 12: Swift3.0に向けて enumerateを使い始めよう

と、いうことで

Page 13: Swift3.0に向けて enumerateを使い始めよう

こんなんが書けなくなる😱

Page 14: Swift3.0に向けて enumerateを使い始めよう

困りそうなこと

Page 15: Swift3.0に向けて enumerateを使い始めよう

あんまりない😜for-in, forEach, map, filter よりどりみどり

Page 16: Swift3.0に向けて enumerateを使い始めよう

Swift Advent Calendar 2015 2日目にまとめましたhttp://qiita.com/mo_to_44/items/cf83b22cb34921580a52

Page 17: Swift3.0に向けて enumerateを使い始めよう

ちょっと困りそうなこと

• 配列内の要素のindexを取得したい

• indexが奇数の要素だけ取得したい などなど

などなど、indexによってデータを取得、更新したり、indexが配列を操作する際に重要な場合

Page 18: Swift3.0に向けて enumerateを使い始めよう

indexが奇数の要素だけ取得

1. 空の配列 newArray を用意 2. for-inで各要素のindexを取得 3. indexが奇数の要素を newArray に追加

Page 19: Swift3.0に向けて enumerateを使い始めよう

長っ

Page 20: Swift3.0に向けて enumerateを使い始めよう

こんな時に

Page 21: Swift3.0に向けて enumerateを使い始めよう

enumerateが使える

Page 22: Swift3.0に向けて enumerateを使い始めよう

enumerate

• SequenceType Protocolに定義されている

• indexと要素のペア(タプル)の配列を取得することができる

Page 23: Swift3.0に向けて enumerateを使い始めよう

indexが奇数の要素だけ取得enumerate使用版

1. 空の配列 newArray を用意 2. enumerateを使用し、indexと要素のタプルの配列のfor-inを回す

3. indexが奇数の要素を newArray に追加

Page 24: Swift3.0に向けて enumerateを使い始めよう

まだちょっと長い

Page 25: Swift3.0に向けて enumerateを使い始めよう

indexが奇数の要素だけ取得enumerate使って1行に

1. enumerateを使用し、indexが奇数のタプルをfilterで絞り込み

2. mapで要素のみを取り出す

Page 26: Swift3.0に向けて enumerateを使い始めよう

(index, element)$0.0 $0.1

タプルの要素へのアクセス

Page 27: Swift3.0に向けて enumerateを使い始めよう

indexが奇数の要素だけ取得enumerate使って1行に

1. enumerateを使用し、indexが奇数のタプルをfilterで絞り込み

2. mapで要素のみを取り出す

Page 28: Swift3.0に向けて enumerateを使い始めよう

シンプル 👍

Page 29: Swift3.0に向けて enumerateを使い始めよう

まとめ

Page 30: Swift3.0に向けて enumerateを使い始めよう

enumerate• SequenceTypeのExtensionで定義されている

• index と 要素のペア(タプル)の配列を取得できる

Page 31: Swift3.0に向けて enumerateを使い始めよう

Swift 3.0• ++ と -- がなくなる

• C言語スタイルのfor文がなくなる

Page 32: Swift3.0に向けて enumerateを使い始めよう

Swift 3.0に向けて• C言語スタイルのfor文ではなく、enumerateを積極的に使っていく

• 同様に ++ や -- も使わないようにする

• swift-evolution/proposal に目を通して、なくなるかもしれない文法はなるべく使わないようにする

Page 33: Swift3.0に向けて enumerateを使い始めよう

おわり