Автор оригинала: 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 – Ранды приветствуются! ?