📜  CoffeeScript 中的 splat 是什么?

📅  最后修改于: 2022-05-13 01:56:12.457000             🧑  作者: Mango

CoffeeScript 中的 splat 是什么?

CoffeeScript是一种编译成 JavaScript 的轻量级语言。与 JavaScript 相比,它提供了简单易学的语法,避免了 JavaScript 的复杂语法。 CoffeeScript 受到 JavaScript、YAML、Ruby、 Python等语言的影响,也影响了 LiveScript、MoonScript 等语言。

CoffeeScript 的安装:

为项目本地安装

npm install --save-dev coffeescript

全局安装以在任何地方执行 .coffee 文件

npm install --global coffeescript

CoffeeScript 中的 Splat:通常,我们可以将固定数量的参数传递给 CoffeeScript 中的函数,但如果需要将可变参数传递给函数呢?

Splats是 CoffeeScript 提供的功能,允许将多个参数传递给函数。我们可以通过在参数名称后放置三个点来在函数中使用 splats。

句法:

functionName = ( argument1 , argument2...) -> 
    ...

示例:此示例展示了如何使用 CoffeeScript 中的 splats 在函数中接受多个参数。我们使用 splat 定义了一个名为 lang_type() 的函数。我们已经多次调用这个函数,并传递了不同数量的参数。由于我们在定义函数时使用了 splats,因此每次调用函数时,它都会接受可变数量的参数。

Javascript
lang_type = (first, second, others...) ->
    FirstType = first
    SecondType = second
    OtherType  = others
    console.log "First Type: " +FirstType
    console.log "Second Type: " +SecondType
    console.log "Other types: " +OtherType
  
// Passing 2 arguments
console.log "############## Two types of 
    languages ############"
lang_type "Monolithic", "Procedural"
  
// Passing 4 arguments
console.log "############## Four types of 
    languages ############"
lang_type "Monolithic", "Procedural", 
    "Functional", "Object Oriented"


Javascript
(function () {
    var lang_type;
  
    lang_type = function (first, second, ...others) {
        var FirstType, OtherType, SecondType;
        FirstType = first;
        SecondType = second;
        OtherType = others;
        console.log("First Type: " + FirstType);
        console.log("Second Type: " + SecondType);
        return console.log("Other types: " + OtherType);
    };
  
    // Passing 2 arguments
    console.log("############## Two types of 
        languages ############");
  
    lang_type("Monolithic", "Procedural");
  
    // Passing 4 arguments
    console.log("############## Four types of 
        languages ############");
  
    lang_type("Monolithic", "Procedural", 
        "Functional", "Object Oriented");
  
}).call(this);


在编译时,它给出以下结果:

Javascript

(function () {
    var lang_type;
  
    lang_type = function (first, second, ...others) {
        var FirstType, OtherType, SecondType;
        FirstType = first;
        SecondType = second;
        OtherType = others;
        console.log("First Type: " + FirstType);
        console.log("Second Type: " + SecondType);
        return console.log("Other types: " + OtherType);
    };
  
    // Passing 2 arguments
    console.log("############## Two types of 
        languages ############");
  
    lang_type("Monolithic", "Procedural");
  
    // Passing 4 arguments
    console.log("############## Four types of 
        languages ############");
  
    lang_type("Monolithic", "Procedural", 
        "Functional", "Object Oriented");
  
}).call(this);

输出 :