У меня ошибка при компиляции следующего кода
type shape =
| Circle int
| Square int
| Rectangle int int;
let myShape = Circle 10;
let area =
switch myShape {
| Circle r => float_of_int (r * r) *. 3.14
| Square w => float_of_int (w * w)
| Rectangle w h => float_of_int (w * h)
};
Js.log area;
Неустранимая ошибка: исключение Ошибка ("nth")
ниндзя: сборка остановлена: подкоманда не удалась.
Когда я меняю Rectangle
на кортеж (int, int), он работает
type shape =
| Circle int
| Square int
| Rectangle (int, int);
let myShape = Circle 10;
let area =
switch myShape {
| Circle r => float_of_int (r * r) *. 3.14
| Square w => float_of_int (w * w)
| Rectangle (w, h) => float_of_int (w * h)
};
Js.log area;
Разве нельзя иметь несколько аргументов в конструкторе данных?
Благодарность
Проблема отправлена в бакелскрипт https://github.com/BuckleScript/bucklescript/issues/1822 < / а>