LoginSignup
14
9

More than 5 years have passed since last update.

Swift4で変更されたStringAPIをいくつか試してみた

Last updated at Posted at 2017-06-25

はじめに

Swift4になり、String APIにいくつかの変更があったようなので、実際にPlaygroundで試してみました。

検証環境

以下の環境を使用しています。

  • macOS Sierra Version 10.12.4
  • Xcode Version 9.0.0 β1

Multi-line string literals

複数行の表示がより直感的に簡潔になりました。
以前では複数行表示する際にescaping sequenceを使用し、\nで改行するか、printを複数行使用する必要がありましたが、Swift4では、「"""」で文字列を囲むことで、複数行の文字列の表示が可能です。

具体例

Swift3
print("あいうえお かきくけこ")
print("さしすせそ たちつてと\nなにぬねの はひふへほ")
print("まみむめも や ゆ よ\nらりるれろ わ を ん")
Swift4
 print("""
あいうえお かきくけこ
さしすせそ たちつてと
なにぬねの はひふへほ
まみむめも や ゆ よ
らりるれろ わ を ん
""")

stringが再びCollectionTypeに

StringがCollectionTypeになったことにより、filterやmapを使用した直感的な記法が使えるようになりました。

具体例:文字列から ! を除外する

Swift3
var string = "Don’t ask for permission!, beg for forgiveness!"
let filtered = String(string.characters.filter{ !"!".contains($0) })
Swift4
var string = "Don’t ask for permission!, beg for forgiveness!"
let filtered = string.filter{ $0 != "!" }

具体例2:文字列の先頭6文字のみ残す

Swift3
let string = "we can't"
let prefixed = String(string.characters.prefix(6))
Swift4
let string = "we can`t"
let prefixed = string.prefix(6)

所感

charactersを介さずに書けることになったことにより、非常に簡潔な書き方ができるようになったと思います。個人的にはMulti-line string literalsが地味に便利だなと感じました。

参考文献

Exploring the new String API in Swift 4

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9