__FILE__ __LINE__.
В запросе представлен текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — русский.
Текст описывает изменения, внесённые в различные версии программного обеспечения Scorpio-CSharp. В нём перечислены новые функции, улучшения и исправления ошибок, которые были реализованы в каждой версии.
Определить основной язык исходного текста не представляется возможным, так как он содержит только технические термины и описания функций без эмоциональной окраски и других признаков, позволяющих определить его принадлежность к какому-либо языку. Можно предположить, что это язык программирования, используемый для разработки Scorpio-CSharp, но точный ответ дать невозможно. Перевод текста на русский язык:
Основные типы (number, string, bool, null) кроме Пример скрипта.
[Новое]
Поддержка вызова функций, содержащих ref и out метки Пример скрипта.[Новое]
Быстрая поддержка рефлексии для создания шаблонных функций, поддерживающих функции с метками ref и out.[Новое]
C# массивы поддерживают прямой доступ к элементам через [] Пример скрипта.[Новое]
Перегрузка C# [] скобок (кроме перегрузки для ключей типа string), поддерживается прямой вызов через [] Пример скрипта.[Новое]
Элементы C# поддерживают += -= и другие операторы присваивания.[Новое]
Генерация скриптов IL файлов, во время выполнения можно избежать процесса разбора и компиляции.[Новое]
Добавлен класс ScriptNamespace, можно использовать importNamespace для импорта пространств имён C#.[Новое]
Добавление библиотеки ввода-вывода.[Новое]
В командной строке добавлены команды для генерации файлов быстрой рефлексии и IL файлов. Можно использовать sco -help для просмотра.[Оптимизация]
Оптимизация производительности скриптов, переход на компиляцию в стеке и выполнение, частичное тестирование, левая сторона — версия 2.0, результаты тестирования, значительное улучшение базовых операций, также значительное улучшение других операций.
[Оптимизация]
Все библиотечные функции переименованы, новое правило именования — верблюжий регистр, первая буква слова строчная, а каждая последующая буква первого слова прописная, но можно вызвать Script.LoadLibraryV1 для совместимости с правилами именования версии 1.0 библиотеки.[Оптимизация]
Правило для переменной this внутри функции — это переменная, которая ставится перед другими переменными, см. пример в JavaScript Пример скрипта.[Оптимизация]
Функция быстрой рефлексии класса установлена как Scorpio.Userdata.TypeManager.SetFastReflectClass.[Отброшено]
Удаление функций kpairs и vpairs.[Отброшенное]
Удаление try catch.[Отброшенное]
Удаление синтаксиса switch.[Отброшенное]
Удаление ссылок на расширенные функции, используйте статические функции для вызова.[Оптимизация]
Автоматическое связывание делегата C#, нет необходимости в настройке DelegateFactory.[Исправление]
Исправлено BUG в функции рефлексии.[Новое]
Библиотека ввода-вывода добавлена.[Новое]
Библиотечная функция table.define_function добавлена, позволяет динамически создавать внутренние функции, например:var tab = { num = 100 }
table.define_function(tab, "fun", function() {
return this.num
})
print(tab.fun()) //Вывод 100
[Новое]
Вместо ключевого слова function можно использовать # для объявления функции, пример:#test() { }
//Эквивалентно
function test() { }
[Новое]
Поддерживается использование символа ` для объявления строк, аналогично использованию одинарных и двойных кавычек, поддерживается символ @.[Новое]
При объявлении массива разделитель может быть точкой с запятой ;, пример:var a = [100;200;300]
//Аналогично
var a = [100,200,300]
[Новое]
Скрипт может напрямую вызывать операторы C#.Оператор | Название отражения | Прямой вызов скрипта |
---|---|---|
+ | op_Addition | Поддерживает (+= не поддерживает) |
- | op_Subtraction | Поддерживает (-= не поддерживает) |
* | op_Multiply | Поддерживает (*= не поддерживает) |
/ | op_Division | Поддерживает (/= не поддерживает) |
% | op_Modulus | Поддерживает (%= не поддерживает) |
| | op_BitwiseOr | Поддерживает (|= не поддерживает) |
& | op_BitwiseAnd | Поддерживает (&= не поддерживает) |
^ | op_ExclusiveOr | Поддерживает (^= не поддерживает) |
> | op_GreaterThan | Поддерживает |
>= | op_GreaterThanOrEqual | Поддерживает |
< | op_LessThan | Поддерживает |
<= | op_LessThanOrEqual | Поддерживает |
== | op_Equality | Не поддерживает |
!= | op_Inequality | Не поддерживает |
[] | get_Item (получение переменной) | Не поддерживает |
[] | set_Item (установка переменной) | Не поддерживает |
[Новое]
Доступ к частным переменным и функциям классов C# (не поддерживается рефлексией).[Новое]
Ключевое слово let добавлено, используется аналогично var local.[Новое]
Строковая функция string.cs_format добавлена, форматирует строки C#, пример://Вывод 00100,200
print(string.cs_format("{0:D5},{1}", toint(100), 200))
[Новое]
Функция array.toarray добавлена, преобразует массив sco в массив C#, пример://arr представляет собой int[] {100,200,300}
var arr = array.toarray([100,200,300], import_type("System.Int32"))
[Новое]
Функция userdata.typeof добавлена, получает тип переменной класса C# (поддерживает рефлексию), пример://Код C#
public class TestClass {
public int a;
public string b { get; set; }
}
//Код sco
var TestClass = import_type("TestClass")
//Тип t1 равен System.Int32, эквивалентен import_type("System.Int32") ## v1.0.5 (*2019-02-15*)
* `[修复]` Исправлена ошибка с временными переменными и их использованием (спасибо за отзыв **avatarANDY**).
## v1.0.4 (*2018-12-20*)
* `[修复]` Решена проблема с ошибкой разбора скрипта, если его длина меньше 10 символов.
## v1.0.3 (*2018-11-28*)
* `[修复]` Устранена проблема с разбором форматированных строк в новых скриптах.
## v1.0.2 (*2018-11-27*)
* `[优化]` Полностью переработан разбор скриптов, что сделало его более быстрым и простым в использовании.
* `[修复]` Исправлено некорректное поведение при вызове конструктора структуры без параметров.
## v1.0.0 (*2017-11-08*)
* `[新增]` Первый выпуск.
* `[新增]` Для запуска на Linux требуется предварительная установка библиотек libunwind и icu. Их можно установить с помощью команд yum install libunwind и yum install icu соответственно.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )