毎日が86400秒の残り時間

ビル・ゲイツのように計画実行のスピードを上げる

焦らず、しかし休まず、星のように己がまわりを巡れ
(ヨハン・ヴォルフガング・フォン・ゲーテ)

Swift3 イニシャライザ

ちょっと違和感を感じたところ。

 

iPhoneアプリ開発講座 はじめてのSwift

iPhoneアプリ開発講座 はじめてのSwift

 

 

p.38 イニシャライザ

要するに他のOOP言語では、コンストラクターに該当する機能だと思うけど、変数の初期化に使われている。

基本型や、ユーザー定義の型(=クラス)のインスタンス化を行なっている。

 

var string1 = "" // 文字型のリテラル

var string2 = String() // 文字型のイニシャライザ 

 

この記法がしっくり来ないのだが、ここではひとまず、こういうもんだと受け止めておこう。

何か納得いかないのは、クラスをインスタンス化している、という実感が湧かないこと?

 

他のOOP言語だと、

var string = new String()

みたいに「new」演算子で明示的にインスタンス化を強調している部分が抜けているのが、拍子抜け=違和感の元になっているのかもしれない。

 

www.javadrive.jp

 

ただ、逆に言えば「new」が冗長なだけで、なくてもOKといえばOKなんだよな?

 

ここは、Swiftのイニシャライザ=初期化、インスタンス化の流儀に慣れることとしよう!

 

メモ

「詳細 Swift 3」で補足。

 

詳解Swift 第3版

詳解Swift 第3版

 

 

p.59

型名に実引数なしのリスト()を続けた形の式でインスタンスを生成できます。

これを既定イニシャライザ(default initializer)と呼びます。 

 

Swiftのイニシャライザには、いくつかの種類があって、型名にカッコ()を付けたイニシャライザは、既定イニシャライザ(default initializer)という機能だそうです。

 

詳細Swift3もボチボチ読んでいこう。。。