Рабочий стол > DL Руководство пользователя > CoffeeScript > Information > Сравнить страницу
CoffeeScript Войти | Зарегистрироваться   Просмотр версии для печати текущей страницы.

Ключ
Эти линии были удалены. Это слово было удалено.
Эти линии были добавлены. Это слово было добавлено.

Просмотр истории страницы


Есть 6 изменений. Просмотреть первое изменение .

 {{CoffeeScript}} - язык скриптования Web-страниц, интерпретируемый либо транслируемый в [JavaScript]. Предоставляет менее C-подобный синтаксис с меньшим количеством противоречий. (Однако транслируется он "напрямую", и потому изменения затрагивают только элементы синтаксиса.) Основные примеры синтаксиса можно найти на [сайте CoffeeScript|http://coffeescript.org].
  {{CoffeeScript}} \- язык скриптования Web-страниц, интерпретируемый либо транслируемый в [JavaScript]. Предоставляет менее C-подобный синтаксис с меньшим количеством противоречий. (Однако транслируется он "напрямую", и потому изменения затрагивают только элементы синтаксиса.) Основные примеры синтаксиса можно найти на [сайте CoffeeScript|http://coffeescript.org].
  
 На DL CoffeeScript компилируется в JavaScript (с использованием [компилятора версии 1.10.0|http://dl.gsu.by/images/agulenko/js/scripts/coffee-script.js] и самописного [враппера|http://dl.gsu.by/images/agulenko/js/scripts/coffee.js]), после чего запускается под PhantomJS 1.9.8 (см. [JavaScript]).
  
 h2. Особенности
 
 Скобки вокруг списка параметров вызываемой функции необязательны (исключение: пустой список параметров; рекомендуемое использование: только при одном параметре). Последовательные вызовы вкладываются:
 {code:java|title=CoffeeScript}
 f a, b, c d, e
 {code}
 {code:java|title=JavaScript}
 f(a, b, c(d, e));
 {code}
Все сравнения ({{==}}, {{!=}}) проводятся без приведения типа (по значению); однако, рекомендуется использовать эквивалентные слова-операторы ({{is}}, {{isnt}}) во избежание путаницы.
  
Все сравнения (==, !=) проводятся без приведения типа (по значению); однако, рекомендуется использовать эквивалентные слова-операторы ({{is}}, {{isnt}}) во избежание путаницы.
  
 Язык поддерживает деструктуризацию объектов и массивов:
 {code:java|title=CoffeeScript}
 f = ({a, b}) -> [a, b]
 o = {
  a: 5
  b: 6
 }
 [x, y] = f o
 {code}
 {code:java|title=JavaScript}
 var
  f = function (o) { return [o.a, o.b] },
  o = {
  a: 5,
  b: 6,
  },
  xy = f(o),
  x = xy[0], y = xy[1];
 {code}
 
 Каждая (по возможности) операция является выражением:
 {code:java|title=CoffeeScript}
 fact = (n) ->
  if n < 2
  1
  else
  n * fact n-1
 {code}
 {code:java|title=JavaScript}
 fact = function (n) {
  if (n < 2) {
  return 1;
  } else {
  return n * fact(n - 1);
  }
 }
 {code}
  
 h2. Примеры
  
 {code:java|title=a+b}
 sys = require 'system'
  
 readAll = (fin) ->
  [a, b] = fin.readLine().split ' '
  return {
  a: parseInt(a)
  b: parseInt(b)
  }
  
 printAll = (fout, res) -> fout.writeLine res
 calc = ({a, b}) -> a + b
  
 printAll(sys.stdout, calc readAll sys.stdin)
 phantom.exit()
 {code}
 или
 {code:java|title=a+b (сокращённо)}
 sys = require 'system'
  
 [a, b] = sys.stdin.readLine().split ' '
 console.log parseInt(a) + parseInt(b)
 phantom.exit()
 {code}
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: http://www.atlassian.com/software/confluence Build:#2.6.1 916) - Ошибка/новая особенность - Свяжитесь с Администраторами