Swift基本講座

構造体を使う

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
Swiftには、クラスとよく似た使い方ができる構造体というデータ型が用意されています。構造体は変数に代入されたり引数に渡されたりする時に値がコピーされますので、基本的なデータを表現する時に使いやすいデータ型です。
講師:
04:28

字幕

このレッスンでは Swift の構造体について 説明します Swift では構造体とクラスは 非常に似ていますが 構造体は値渡しされる型 クラスは参照渡しされる型として区別されます 即ち構造体は他の変数に代入されたり あるいは関数の引数に渡されたりする時に 構造体の値が複数個作られて コピーされていきますので 元の値は変更されません それに対してクラスは参照渡しされますので オリジナルのオブジェクトが 変更されていきます ですので Swift の構造体とクラスを どのように使い分けるか ということについて説明しますと 構造体は値渡しをする時 クラスは参照渡しをする時に使われます Swift において String Array Dictionary といった基本的な型は すべて構造体として実装されています このことからもわかりますが 構造体はクラスよりも簡単な 使い方をする想定で用意されています それでは実際に Swift の構造体と クラスの違いについて見ていきたいと思います まずはこちらの例をご覧ください こちらの例では doChange という関数を用意して 渡された引数に対して50を+する という処理を行っています この時 value というのは 値渡しをされていますので この doChange に渡された変数― value はコピーされて渡されますので 特にその元の値は変更されません ですのでこの変数として宣言されている value この引数の value は150に 確かに値は変更されますが この元の value という変数はそのままの 値となりますので 最終的にこの value がどうなっているか という値を確認すると 100というふうに 変更されていない状態になります これに対してクラスでは 参照渡しが行われます クラスを使う例を見てみます class MyObj というものを用意しまして ここに値を1つ入れておきたいと思います ここでも100という値から始めましょう そしてこの MyObj をこの value に変えて MyObj() として作成します そしてこの doChange にこのMyObj を 渡したいと思いますので MyObj を渡せるようにここを Object に変更して 渡されたものは MyObj であると いうふうに書き換えます そしてこの obj の value を += 50 と変更しますと 見ていただくとわかりますが MyObj の obj は参照渡し 即ち本体が渡されていますので doChange に対して 本体が渡されて 本体の value にそのまま50が +されますので この obj の中の value は 150という風に 100に50が足された値が そのまま 残って表示されるということになります それに対して構造体を使うとどうなるか ということを見ていただきます 構造体はこのクラスのキーワードに変えて struct と書くことで 宣言することができますが 構造体の場合は この元々の― MyObj を作成した時のこの値 100 というのがそのまま変わっていませんので doChange の関数に渡されるのは このオブジェクトのコピーである― ということがわかります このように構造体ではすべての値が値渡しで コピーされていきますので 元々の値を保存しておきたい場合 例えば player の座標を表す point という構造体を作りたい時等には クラスよりも構造体のほうが向いている と言えます そのほかの面はほとんど同じですので クラスと同じように構造体を― 初期化する時にも init というイニシャライザーを用意して この value を例えば120で初期化する といったことを書くこともできますし この init に対して引数を加える といったこともできます 但し構造体ではコピーしかされませんので 何かしらのクリーンアップをする― という概念はありませんので deinit デイニシャライザーをここに書こうとすると 構造体でデイニシャライザーは使えない というふうにエラーがでますので 注意してください このレッスンでは Swift の 構造体について説明しました

Swift基本講座

このコースでは、iOSやOS X用のアプリをとても簡単に開発することができるプログラミング言語Swiftについて解説します。if文やfor文などの制御命令の使い方から変数や定数、配列や辞書の使い方まで基本的なSwiftプログラミングの知識をPlayground上で説明します。Swiftプログラミングの知識を効率的に学ぶのに、このコースをぜひお役立てください。

2時間59分 (35 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年09月23日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。