Функция Object.assign()
изменяет содержимое первого параметра объекта, который равен a
. Это также возвращаемое значение, поэтому после первого вызова Object.assign()
, который устанавливает значение d
, будет верно, что d === a
.
Таким образом, присвоение «s» a.a
также изменит d.a
, потому что d
и a
ссылаются на один и тот же объект.
Просто добавив мои два цента, простым способом:
Другими словами, оператор распространения делает это:
d = Object.assign({}, a, b, c, d);
e = { ...a, ...b, ...c, ...d };
Теперь оба вышеприведенных то же самое.
Не уверенный, что является проблемами там для других языков, но я вполне уверен, что Lua будет хорошо работать на такой среде.
Это идеально подходит для Ваших требований: основной ввод-вывод, математические функции, превосходные структуры данных (все на основе числового и ассоциативного массива, с любым видом ключа/значений, позволяя самые сложные операции).
Премия: очень простой учиться (для оснований, по крайней мере), читаемый, и мощный, когда Вы начинаете рыть. И это начинает иметь много полезных библиотек, сокетов, regexes и синтаксических анализаторов, GUI, и т.д.
Это - просто единственный двоичный файл, никакая установка вообще, никакой доступ к реестру, никакой доступ к файлу (вне чтения двоичного файла и сценария!), если не требуемый, полностью прозрачный: это часто используется во встроенной системе, часто ограниченная память, на Roms, и т.д.
Существует распределение Python под названием Подвижный Python, который разработан, чтобы сделать точно это. Это могло бы сделать то, что Вы хотите. Кроме того, MinGW/MSYS будет работать на Windows без ключей реестра или другой установки вне размещения файлов в дереве каталогов - все, что необходимо сделать, настраивается соответствующие каталоги в пути, который может быть сделан в пакетном файле.
Java JDK легко соответствует на палке и не требует установки; можно установить его на ПК сначала и затем просто скопировать каталог установки в палку. Я предполагаю, что можно сделать то же для JDK Linux.
И существует тонна хороших текстовых редакторов, которые не требуют установки.
Не уверенный, если это все еще относится к текущим версиям, но у меня есть древнее perl.exe
(версия 5.001, с 1994 или 1995), который все еще работает превосходный единственным исполняемым файлом без установок.
TCC (Крошечный компилятор C) является полным внедрением C в действительно небольшом пакете. Можно даже записать сценарии оболочки в C:
#!/usr/local/bin/tcc -run
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
TCC доступен для любой подобной Unix платформы, и также для Windows.
http://smallbasic.sourceforge.net/
Выполнения где угодно (даже мобильные телефоны) и имеют все, в чем Вы нуждаетесь.
Почему не C++? Можно статически связаться в любых внешних библиотеках, принимающих, там лицензируют, позволяет его, и у Вас не будет внешних зависимостей.
Я очень опаздываю на вечеринку, но я все равно решил взвеситься.
В настоящее время у меня есть USB-накопитель для Windows, на котором установлено следующее (для Windows):
Языки
Инструменты программирования
Geek Toys
И несколько десятков ключевых библиотек, плюс сервер приложений Geronimo.
Да, это один USB-накопитель, и я, вероятно, пропустил что-то здесь или там при составлении этого списка. Удивительно, что в наши дни можно запускать с USB-накопителя.