Search
Write a publication
Pull to refresh
5
0
Send message

Анонс Rust 1.12

Reading time7 min
Views8.9K

Мы рады представить новую версию Rust 1.12. Rust — это системный язык программирования, нацеленный на безопасную работу с памятью, скорость и параллельное выполнение кода.


Как обычно, вы можете установить Rust 1.12 с соответствующей страницы официального сайта, а также ознакомиться с подробным списком изменений в этой версии на GitHub. В этот выпуск вошёл 1361 патч.


Что вошло в стабильную версию 1.12


Выпуск 1.12 — возможно, самый значительный с момента выпуска 1.0. Нам есть о чём рассказать, но если у вас мало времени, вот краткое содержание.

Читать дальше →

Наследование реализаций: закопайте стюардессу

Reading time3 min
Views48K

Ключевое противоречие ООП


Как известно, классическое ООП покоится на трех китах:


  1. Инкапсуляция
  2. Наследование
  3. Полиморфизм

Классическая же реализация по умолчанию:


  1. Инкапсуляция — публичные и приватные члены класса
  2. Наследование — реализация функционала за счет расширения одного класса-предка, защищенные члены класса.
  3. Полиморфизм — виртуальные методы класса-предка.

Но еще в 1986 году была обозначена серьезнейшая проблема, кратко формулируемая так:


Наследование ломает инкапсуляцию

Как такое может быть?

Биохакинг мозга: куда располагать электроды, чтобы стать умнее?

Reading time10 min
Views61K
Сейчас в поле зрения общественного внимания попадает всё больше исследований tDCS – транскраниальной стимуляции постоянным током. Довольно большое количество научных работ последних лет демонстрируют, что tDCS может улучшать когнитивные способности не только при лечении болезней, но и у совершенно здоровых людей. Среди них – реакция, внимание, память и обучение иностранным языкам. Успехи научных исследований привлекли внимание DIY сообщества, которое взяло технологию на вооружение и стало активно применять tDCS на себе.

Однако ключевой момент для проведения электростимуляции – это правильный выбор мест прикрепления электродов к голове. Ведь стимуляция различных зон мозга приводит к принципиально разным когнитивным эффектам – в зависимости от функций этих областей. Поэтому я решил разобраться в научных статьях и выяснить, стимуляция каких зон действительно приводит к ощутимым когнитивным улучшениям и какие подводные камни здесь могут быть.

Читать дальше →

Rust: & и ref в паттернах

Reading time5 min
Views11K
(продолжение)

Как вам, думаю, известно, Раст входит в число языков реализующих сопоставление с образцом (pattern matching). В случае если вам незнаком данный термин, вы можете думать о нём как об обобщёном switch выражении в котором мы сравниваем объекты не только по значению, но и по структуре:

match hashmap.get(&key) {
    Some(value) => do_something_with(value),
    None => { panic!("Oh noes!"); },
}

Разумеется сравнением дело не ограничивается. Как вы можете видеть в примере выше, объекты так же могут быть деструктурированы во время сопоставления (Some(value)) и их части присвоены другим переменным (value), которые могут быть далее использованы в соответствующей ветви match выражения.

Изящно, не правда ли? В Расте сопоставление с образцом это хлеб и масло не только для match, но и для for, (if) let и даже для обыкновенных аргументов функции.

Однако, долгое время я достаточно смутно представлял себе что происходит в случае когда мы добавляем к сопоставлению ссылки и заимствования. & и ref являются двумя «операторами» часто используемых при этом. Разнице между ними и будет посвящена данная статья.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity