GASのアロー関数の使い方!記述パターンや通常functionとの違い・使い分けを解説
Google Apps Script(GAS)では、2020年にV8ランタイムが採用されたことで、ES2015準拠となり、ECMAScript構文が使えるようになりました。
その中でモダンなJavascriptでよく使われるアロー関数について使い方、従来の通常functionで定義する関数との違いを解説します。
V8ランタイムのGASでアロー関数がサポート
Google Apps Script(GAS)は2020年12月にアップデートが行われ、V8ランタイムに対応しました。
V8ランタイムではJavascriptのES2015に準拠しているため、これまでのGASでは利用できなかった様々な機能が用意されました。
その中でも大きな機能の1つがアロー関数です。
アロー関数はGASのベースとなっているJavascriptでもよく使われるため、使いこなせるようになると色々なシーンで活用できます。
アロー関数は書き方が特殊
アロー関数はJavascriptではよく利用されているものの、これまで利用してきた通常の関数に比べ、かなり書き方が異なっています。
パターンに応じて省略できる部分が複数あり、同じアロー関数でも記述方法が違います。
それゆえにプログラミング初心者からすると、理解しづらいハードルの高い存在です。
そこで、アロー関数の書き方について基本となる記述方法をベースに省略パターンを列挙して解説します。
GASのアロー関数の基本的な書き方
Google Apps Script(GAS)でのアロー関数を記述する方法は以下の通りです。
(引数1, 引数2) => {
//処理を記述
return 戻り値
}
関数リテラルよりもアロー関数のほうが記述するコード量が少なくなります。
関数リテラルのように変数の定義に代入する形で利用するケースが多く、以下のサンプルコードのような書き方をします。
さらに、上記のアロー関数の基本構文から、さらに記述を省略して、シンプルに記述可能です。
アロー関数の記述省略パターン
アロー関数の省略パターンは以下2パターンがあります。
- 引数が1つの場合、()丸括弧が省略可能
- アロー関数内の処理がreturn文の1行のみの場合、{}中括弧とreturnが省略可能
Google Apps Script(GAS)のスクリプトエディタで、アロー関数の基本構文と省略形をまとめたサンプルコードを紹介します。
const arrow0 = (val) => console.log('アロー関数');
function testArrowFunction() {
console.log(arrow0());
//最も標準的なアロー関数の記述方法
const arrow1 = (val) => {
return val**2
};
console.log(arrow1(16));
//引数が1つの場合、()カッコが省略可能
const arrow2 = val => {
return Math.sqrt(val)
};
console.log(arrow2(16));
//処理が1行の場合は{}中括弧とreturnが省略可能
const arrow3 = (val1,val2) => Math.sqrt(val1**2 + val2**2);
console.log(arrow3(3,4));
//仮引数がない場合は()を省略することはできない
const arrow4 = () => Math.PI ;
console.log(arrow4());
}
実際に4つのアロー関数をログ出力するGASサンプルコードを実行すると、実行ログに4つが表示されます。
どの書き方でもアロー関数として認識され、想定どおりの実行結果が出力されます
アロー関数と通常関数の違い・使い分けは?
通常の関数(関数リテラル)の場合、function文を使って関数の宣言を行います。
それに対し、アロー関数ではfunction文は必要ありません。
機能的な面で通常のfunction文で宣言した関数とアロー関数に違いはありません。
ただ、アロー関数を使うことで通常の関数よりも記述量を少なくして、コード量を減らすことができます。
GASでアロー関数を使う際の注意点
Google Apps Script(GAS)でアロー関数を使う際の注意点として、まず「V8ランタイムが有効になっているか」確認することです。
現在、新しいGASプロジェクトを作成した場合には、デフォルトでV8ランタイムが有効になっています。
しかし、2020年以前のGASではV8ランタイムが無効になっていることがあり、その場合、アロー関数が認識されず、スクリプト保存時に「構文エラー: Syntax error. 行: *」と表示されます。
そのため、アロー関数を使う際には、当該GASプロジェクトがV8ランタイム有効かプロジェクト設定画面から確認し、無効の場合はチェックを入れて有効にしましょう。
また、会社や組織でGASを利用しており、複数人で開発している場合、メンバーでアロー関数の使い方のルールを統一しましょう。
ネット上にあるGASのコードの多くはまだまだアロー関数が利用しているものが少ないです。
そんな中、アロー関数に対する理解が開発メンバー間に差異がある状態だと、使い方が異なるようになります。
省略可能なパターンで省略する書き方をする人と、常に基本パターンで省略せずに書く人がいると、保守性が低下します。
そのため、チーム内でしっかりアロー関数の認識を揃え、省略パターンの対応ケースをルール化しておきましょう。
まとめ・終わりに
今回、Google Apps Script(GAS)で利用できるアロー関数の基本的な構文と省略記法について紹介しました。
2020年にGASがV8ランタイムにアップデートされて、ES2015のアロー関数が利用できるようになりました。
アロー関数は通常の関数との記述方法が異なる点や省略パターンがあるため、GAS初心者には読みづらいです。
しかし、省略パターンをしっかり理解しておけば、アロー関数だと識別し、動作が理解できるようになります。
アロー関数を使うことで、GASスクリプトのコード量を減らすことが可能です。
GASコードではアロー関数を使っているケースはまだ少ないですが、ぜひアロー関数がどういった書き方か、通常関数との違いを覚えておきましょう。
ディスカッション
コメント一覧
まだ、コメントがありません