RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

学んでみて思ったSwiftのいいところ3選!

f:id:FM_Harmony:20200624095026p:plain

はじめに

こんにちは、id:FM_Harmonyです。
Rakus Developers Blogでは約一年振りの投稿になります。

さて、今年から楽楽精算のスマートフォンアプリ開発に携わることとなり、業務知識としてSwiftを学習しています。 そこで、今回はSwiftのいいなと思った箇所について、簡単にまとめてみました。

これからSwiftの学習を始める方に、Swiftの良さが伝えられれば幸いです。

いいところ①:型推論

Swiftは静的型付け言語ですが、型推論を持っています。
そのため、変数宣言時は定数かどうかのみを意識すればよく、簡潔なコードを書くことができます。

var n = 1
print(type(of:n)) // → Int

いいところ②:nullの取り扱い

Swiftでは、変数にnull(nil)を代入するためには、Optional型として宣言する必要があります。

// var m = nil → コンパイルエラー
var n:Int? = nil
print(type(of: n)) // Optional<Int>

Optional型はアンラップしなければ利用できないため、nullかもしれない値を安全に利用することができます。
アンラップする方法の一つに、if - let構文があります。

var n:Int? = 1
print(n) // Optional(1)
// n += 1  → コンパイルエラー
if let m = n {
    print(m) // 1
    m += 1
}

また、guard - else構文により、Optionalの値がnullだった場合はリターンし、そうでない場合はアンラップした値を変数に代入する、といったこともできます。

guard let n = hoge() else {
    return
}
print(n) // → hoge()の戻り値がnilでなければ、その戻り値を表示する

guard - else構文では、複数の変数に代入することもできます。

guard let m = hoge(), let n = fuga() else {
    return
}
print(m) 
print(n)
// ↑ hoge()、fuga()の戻り値がnilでなければ、その戻り値を表示する

いいところ③:文字列補完

文字列リテラルに、\(変数)という形で変数の値を埋め込むことができます。
変数の値と文字列リテラルの結合もできるのですが、文字列補完を利用した方が簡潔なコードを書くことができます。

let year = 2020
let month = 6
let day = 24

print("\(year)\(month)\(day)日") // 2020年6月24日

おわりに

いかがでしたでしょうか。
Swiftを使うことで、簡潔かつ安全なコードを書けるということが伝えられていれば幸いです。

他にも、extensionやprotocol、クロージャというように、過去の記事で紹介されている文法があります。

tech-blog.rakus.co.jp tech-blog.rakus.co.jp

そういったものについても今後理解を深めていき、スマートフォンアプリの機能開発に活かせればと思います。

参考文献

Copyright © RAKUS Co., Ltd. All rights reserved.