Coffeescript-functions

提供:Dev Guides
移動先:案内検索

CoffeeScript-関数

関数は、プログラム内のどこからでも呼び出すことができる再利用可能なコードのブロックです。 これにより、同じコードを何度も記述する必要がなくなります。 プログラマーがモジュラーコードを書くのに役立ちます。

関数を使用すると、プログラマは大きなプログラムをいくつかの小さく管理可能な関数に分割できます。

一般に、JavaScriptを使用して、2つのタイプの関数を定義できます-名前付き関数、関数名本体を持つ通常の関数、および*関数式*。 関数式を使用して、変数に関数を割り当てることができます。

//named function
function sayHello(){
   return("Hello there");
}

//function expressions
var message = function sayHello(){
   return("Hello there");
}

CoffeeScriptの関数

CoffeeScriptの関数の構文は、JavaScriptに比べて簡単です。 CoffeeScriptでは、関数式のみを定義します。

CoffeeScriptでは function キーワードが削除されています。 ここで関数を定義するには、細い矢印(*→ *)を使用する必要があります。

背後では、CoffeeScriptコンパイラーが矢印をJavaScriptの関数定義に変換します(以下を参照)。

(function() {});

CoffeeScriptで return キーワードを使用することは必須ではありません。 CoffeeScriptのすべての関数は、関数の最後のステートメントを自動的に返します。

  • 関数の最後に到達する前に呼び出し元の関数に戻るか、値を返したい場合は、 return キーワードを使用できます。
  • インライン関数(1行にある関数)に加えて、CoffeeScriptで複数行の関数を定義することもできます。 中括弧は削除されるため、適切なインデントを維持することで実行できます。

関数を定義する

以下は、CoffeeScriptで関数を定義する構文です。

function_name = -> function_body

以下に、CoffeeScriptの関数の例を示します。 ここでは、 greet という名前の関数を作成しました。 この関数は、その中のステートメントを自動的に返します。 function_example.coffee という名前のファイルに保存します

greet = -> "This is an example of a function"

コマンドプロンプトで次のコマンドを実行してコンパイルします。

c:\>coffee -c function_example.coffee

コンパイル時に、次のJavaScriptコードが生成されます。 ここで、CoffeeScriptコンパイラが* greet()*という名前の関数で文字列値を自動的に返したことを確認できます。

//Generated by CoffeeScript 1.10.0
(function() {
  var greet;

  greet = function() {
    return "This is an example of a function";
  };

}).call(this);

複数行関数

また、中括弧の代わりにインデントを維持することにより、複数行の関数を定義できます。 ただし、関数全体の行に続くインデントと一致する必要があります。

greet =  ->
  console.log "Hello how are you"

コンパイル時に、上記のCoffeeScriptは次のJavaScriptコードを提供します。 CoffeeScriptコンパイラーは、インデントを使用して分離し、中括弧内に配置した関数の本体を取得します。

//Generated by CoffeeScript 1.10.0
(function() {
  var greet;

  greet = function() {
    return console.log("Hello how are you");
  };

}).call(this);

引数を持つ関数

以下に示すように、かっこを使用して関数に引数を指定することもできます。

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c

上記のCoffeeScriptファイルをコンパイルすると、次のJavaScriptが生成されます。

//Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

}).call(this);

関数の呼び出し

関数を定義した後、その関数を呼び出す必要があります。 次の例に示すように、名前の後に括弧を配置するだけで、関数を呼び出すことができます。

add = ->
  a=20;b=30
  c=a+b
  console.log "Sum of the two numbers is: "+c
add()

コンパイル時に、上記の例は次のJavaScriptを提供します

//Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function() {
    var a, b, c;
    a = 20;
    b = 30;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };
  add();
}).call(this);

上記のCoffeeScriptコードを実行すると、次の出力が生成されます。

Sum of the two numbers is: 50

引数付きの関数の呼び出し

同様に、以下に示すように、引数を渡して関数を呼び出すことができます。

my_function argument_1,argument_2
or
my_function (argument_1,argument_2)

注意-引数を渡して関数を呼び出すとき、括弧の使用はオプションです。

次の例では、2つのパラメーターを受け入れる* add()*という名前の関数を作成し、呼び出しました。

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

コンパイル時に、上記の例は次のJavaScriptを提供します。

//Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);

}).call(this);

上記のCoffeeScriptコードを実行すると、次の出力が生成されます。

Sum of the two numbers is: 30

デフォルトの引数

CoffeeScriptはデフォルト引数もサポートしています。 次の例に示すように、関数の引数にデフォルト値を割り当てることができます。

add =(a = 1, b = 2) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

#Calling the function with default arguments
add()

コンパイル時に、上記のCoffeeScriptは次のJavaScriptファイルを生成します。

//Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    if (a == null) {
      a = 1;
    }
    if (b == null) {
      b = 2;
    }
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);
  add()

}).call(this);

上記のCoffeeScriptコードを実行すると、次の出力が生成されます。

Sum of the two numbers is: 30
Sum of the two numbers is: 3