Рубрики
Без рубрики

ABS 1.1.0: больше Python и Bash для самых веселых языков программирования там

Автор оригинала: FreeCodeCapm Team.

Алексом Надалин

В этой статье я обсудим новый новый выпуск Язык программирования ABS Привлекая больше синтаксиса, с которым вы должны быть знакомы, вдохновлены как Bash, так и Python.

Этот выпуск включает в себя 8 новых функций и 2 bugfixes, поэтому давайте рассмотрим их вместе!

Лучшее членство по тестированию

Оператор тестирования членства в Теперь поддерживает поиск того, имеет ли объект определенный ключ, а также позволить ему найти подстроки в строках:

some in {"some": "thing"} # TRUEsome in {} # FALSE
"str" in "string" # TRUE"hello" in "string" # FALSE

С этими изменениями в в Мы теперь обесцениваем set.includes (участник) Функция:

"string".contains("str")[1, 2, 3].contains(2)

Функция будет продолжать работать, но, опять же, устарела. Скорее всего, мы не удалим его из будущих выпусков (даже основных), но … Вы предупредили!

1 ~ 1.1.

Оператор сходства, ~ Теперь поддерживает цифры:

1 ~ 1.23 # TRUE1 ~ 0.99 # FALSE

Числа будут похожи, если их целочисленное преобразование одинаково. Это сокращение для:

1.int() == 1.23.int() # TRUE1.int() ~ 0.99.int() # FALSE

для .. вводится

Мы внесли несколько изменений в для .. в Чтобы сделать его более полезным, так как вы можете сейчас зацикливаться через хэши:

for k, v in {"some": "thing"} {    # k is some     # v is thing }

Больше разрушимости

Мы ввели разрушимость До пресса был стабильным , обновил это прямо до 1,0 И мы теперь расширили его, чтобы быть в состоянии разрушать хэши:

some, thing = {"some": 1, "thing": 1}some + thing # 2

Команды BackTick

Мой Абсолют Любимая особенность в этом выпуске – это возможность выполнять команды с синтаксисом оболочки BackTick:

`ls -la`
# previously you could only do$(ls -la)

Были некоторые ограничения с $ () Синтаксис (а именно команда должна быть на собственной строке), которые больше нет с backticks. Теперь вы можете делать такие вещи, как:

if `somecommand`.ok {    ...do something...}
# This is not possible, $() needs its own line$(somecommand).ok

Тот же стиль интерполяции, доступный с $ () работает с backticks:

arg = "-la"`ls $arg`

Сон (MS)

Ну … каждый язык имеет один!

Теперь вы можете приостановить выполнение скрипта, спать на определенное количество миллисекунды:

echo("This will be printed immediately")sleep(10000)echo("This will be printed in 10s")

Хеш встроенные функции

С этим выпуском мы добавили кучу новых встроенных функций для хэшей:

hash = {"a": 1, "b": 2, "c": 3}
hash.keys() # ["a", "b", "c"]hash.values() # [1, 2, 3]hash.items() # [["a", 1], ["b", 2], ["c", 3]]hash.pop(a) # hash is now {"b": 2, "c": 3}

Нулевое сравнение

В ABS 1.0.0 Мы представили ошибку, которая сделала бы ненужное сравнение:

null == null # FALSE

В 1.2.0 мы исправили его (и обратно его на 1.0.2 ).

Индексные задания

Назначение индекса хеш/массива сейчас работает:

array = []array[0] = 1 # array is now [1]array[5] = 1 # array is now [1, null, null, null, null, 1]
hash = {}hash.x = 1 # hash is now {"x": 1}

Чего ты ждешь?

bash <(curl https://www.abs-lang.org/installer.sh)

… и начните сценарию, как это 2019!

PS: снова, большое спасибо Эрих Кто помогал мне по пути и стал решающим членом команды за последние несколько недель. Просто хочу убедиться, что его имя упоминается, как большинство этих вещей не было бы возможно без него!

PPS: 1.2.0 уже хорошо ведется – Ожидайте этого в течение следующих 2-3 недель. Мы будем представлять чрезвычайно интересные функции, такие как фоновые команды и REPS История, так что это будет захватывающим выпуском!

Первоначально опубликовано в odino.org Отказ Вы можете следовать за мной на Twitter – Ранды приветствуются! ?