GASでゲッターを使って簡単なプロパティを作成する方法


get

photo credit: CityofStPete Cardio Tennis Class via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

「初心者でもわかるGoogle Apps Scriptのクラス」についてシリーズでお伝えしています。

前回の記事はこちら。

Google Apps Scriptでスプレッドシートのデータの1行分を表すクラスを作る方法
「初心者でもわかるGoogle Apps Scriptのクラスの作り方」をテーマにシリーズをお送りしています。今回は、GASでスプレッドシートのデータの1行分を表すクラスを作る方法です。

データの1行分を表すクラスを作る方法をお伝えしました。

さて、クラスで定義したプロパティですが、「ゲッター」と呼ばれる別の方法で作ることができます。

ということで今回は、GASでゲッターを使って簡単なプロパティを作成する方法をお伝えします。

では、行ってみましょう!

前回のおさらい

まず、前回のおさらいです。

以下のようなスプレッドシートがあるとします。

スプレッドシートのテーブル

各行のデータをもとにしたインスタンスを生成するクラスPersonを作りました。

こちらです。

プロパティとしては、スプレッドシートからそのままid、name、gender、birthdayを持たせました。

今回は、新たに別の方法でプロパティを追加してみたいと思います。

プロパティの値から別のプロパティを作る

例えば、男性かどうかをブール値で返すisMaleというプロパティを作りたいとします。

constructorメソッドを使用する

constructorメソッドに、genderプロパティの値を使って算出するという方法を考えることができますね。

例えば、以下のようなスクリプトです。

実行結果は以下のようになります。

GASのクラスで定義したisMaleプロパティの結果

values[1]はのBobさんは「male」なので、isMaleプロパティはtrueです。

元のプロパティが変更になった場合

インスタンス生成後はこれでいいのですが、万が一genderプロパティに変更があった場合はおかしくなってしまいます。

以下を実行してみましょう。

結果はこちら。

GASのisMaleプロパティが変更なし

そうなんです。genderプロパティを変更したのですが、isMaleプロパティはそのままになってしまいます。

なので、他のプロパティの値の結果で、変更が必要になるようなときは別の方法を考えないといけませんね。

ゲッターを定義する

そこで、別の方法としてゲッターによりプロパティを定義する方法を考えます。

ゲッターというのは、プロパティを定義しつつ、そのプロパティが呼び出されたときに関数を呼び出すことができるというものです。

get構文でプロパティを作る

ゲッターの定義には、以下のget構文を使います。

get プロパティ名(){
 //処理
 return 戻り値;
}

では、例を見てみましょう。

以下のようなものです。

isMaleプロパティは呼び出されると、get構文で定義した関数が実行され、その時の「genderプロパティがmaleかどうか」をブール値で返します。

つまり、genderプロパティと連動してくれるんですね。

実行結果はこちらです。

GASのゲッターによるプロパティ

うまく動いていますね。

ゲッターによるプロパティへの代入

ちなみに、ゲッターによるプロパティには代入はできるのでしょうか?

試してみましょう。

こちらを実行してみると、こうなります。

GASのゲッターによるプロパティへの上書き

エラーは出ませんが、上書きは成功しないようですね。

まとめ

以上、GASでゲッターを使って簡単なプロパティを作成する方法をお伝えしました。

他のプロパティと連動して、その内容が変更するようなプロパティはget構文によるゲッターを使うと良さそうですね。

ゲッターがあるなら「セッター」もありそうですよね…

GASでセッターを使ってプロパティの入力に制限をかける
「初心者でもわかるGoogle Apps Scriptのクラス」についてシリーズでお伝えしています。今回は、GASでset構文によるセッターを使って上書き禁止のプロパティを作る方法をお伝えします。

ということで、次回はセッターの作り方についてお伝えします。

どうぞお楽しみに!

連載目次:初心者向けGoogle Apps Scriptでクラスを作ろう

使いどころやそのメリットが分かりづらいGASの「クラス」。本シリーズでは、初心者でもわかるように「これでもか!」とじっくり着実にクラスとそのメリットについて解説をしていきます。
  1. 【初心者向け】Google Apps Scriptでクラスを理解するためのオブジェクトの基礎知識
  2. 初心者でもできるGoogle Apps Scriptで最も簡単なクラスを作る方法
  3. Google Apps Scriptでクラスに最も簡単なプロパティを追加する方法
  4. Google Apps Scriptでクラスに最も簡単なメソッドを追加する方法
  5. Google Apps Scriptでスプレッドシートのデータの1行分を表すクラスを作る方法
  6. GASでゲッターを使って簡単なプロパティを作成する方法
  7. GASでセッターを使ってプロパティの入力に制限をかける

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

タイトルとURLをコピーしました