読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #298】Swift3.1での変更点「Sequenceプロトコル(Array等)への関数追加」

この記事を読んでわかること

  • Swift3.1での変更点
  • prefix(while:)とdrop(while:)の使い方

Sequenceプロトコル(Array等)への関数追加

prefix(while:)とdrop(while:)が追加された。

prefix(while:)

先頭の要素から「条件を満たさなくなる」までの値の配列を返す。

例: 条件は「100未満の値」

100の時点で条件を満たさなくなる。 そのため、最後の5は返されない。

let nums = [1, 2, 3, 10, 20, 30, 100, 200, 300, 5]
let prefixed = nums.prefix(while: {$0 < 100})
// [1, 2, 3, 10, 20, 30]

例: 条件は「1文字以上」

先頭の要素が空文字で条件を満たさないため、 2番めの要素以降は返されない。

let words = ["", "A", "B", "C", "A1", "A2", "A3", "A1X", "A2X", "A3X"]
let words_prefixed = words.prefix(while: {x in x.characters.count > 0})
// []

drop(while:)

先頭の要素から「条件を満たす」要素をスキップする。 条件を満たさなくなった要素「以降」の配列を返す。

例: 条件は「100未満の値」

先頭から30までの要素は条件を満たすため、スキップされる。 それ以降の配列が返される。

let nums = [1, 2, 3, 10, 20, 30, 100, 200, 300, 5]
let dropped nums.drop(while: {$0 < 100})
// [100, 200, 300, 5]

例: 条件は「1文字以上」

先頭の要素が条件を満たさない。 全ての要素を含む配列が返される。

let words = ["", "A", "B", "C", "A1", "A2", "A3", "A1X", "A2X", "A3X"]
let words_prefixed = words.drop(while: {x in x.characters.count > 0})
// ["", "A", "B", "C", "A1", "A2", "A3", "A1X", "A2X", "A3X"]

Swift

入門書籍

絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第5版
プログラミングが初めて!という人が小さなアプリを作ることで、アプリ開発を学ぶことができます。
「Swiftだけでなく、プログラミング自体が初めてなんだけど、どの本が良い?」と聞かれたときには、
この書籍をおすすめしています。

本気ではじめるiPhoneアプリ作り Xcode 8.x+Swift 3.x対応 (ヤフー黒帯シリーズ)
アプリ開発からApp Storeへの公開までの一通りを学ぶことができます。
入門書を2冊、3冊を読んだあとでこの書籍を読むとかなりの実力アップを感じることができます。

ただし、一通り学ぶことができますが、プログラミング初めてでこの書籍を選ぶことはオススメできません。
最初の方の内容はプログラミング初心者には理解が難しく、そこで勉強をやめてしまう可能性がありそうだと感じます。

Swiftポケットリファレンス
辞書として1冊は持ってても良い。

仕事でやれるレベルになるために

初心者から仕事でやれるレベルになるためにオススメできる日本語書籍がみつかりませんでした。
英語は苦手でも、書籍に書かれているソースはやさしく、読み進めることができます。

The iOS Apprentice (英語サイト・英語書籍)
Swift Apprentice (英語サイト・英語書籍)

平均的プログラマーを超えるために

詳解Swift 第3版
Swift3の書籍。第1版、第2版にもお世話になっています。
Swiftの文法についてとても詳しく書いてあります。

Ray Wenderlich | Tutorials for iPhone / iOS Developers and Gamers
QiitaのSwiftに関する記事