CoffeeScript-関数

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

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

一般に、JavaScriptを使用して、2つのタイプの関数を定義できます– named functions、関数名本体を持つ通常の関数と、 Function expressions。関数式を使用して、変数に関数を割り当てることができます。

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

CoffeeScriptの関数

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

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

舞台裏では、CoffeeScriptコンパイラは、以下に示すように、矢印をJavaScriptの関数定義に変換します。

(function() {});

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

  • 呼び出し元の関数に戻るか、関数の最後に到達する前に値を返したい場合は、 return キーワード。

  • インライン関数(単一行の関数)に加えて、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);

マルチライン機能

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

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)

Note −関数に引数を渡して関数を呼び出す場合、括弧の使用はオプションです。

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

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