Loo
)))
Αλεχ
ну синглтоны так синглтоны, чё.
синглтон параметр функции это оксюморон
Αλεχ
глобальными переменными в расте являются типы, например
Αλεχ
и то, что объявлено с static и const вне функций
Αλεχ
всё
Αλεχ
все остальное - локальные переменные
Αλεχ
если упрощать и не вспоминать всякие разделяемые ресурсы ядра, которые могут выглядить как локальные переменные
Loyd
глобальными переменными в расте являются типы, например
... которые не являются переменами, ибо не имеют значения
Αλεχ
в текущем расте да
Αλεχ
точнее это переменная с единственным значением
Loyd
Не надо путать со скоупами (типы в глобальном скопе, могут быть и локальные типы, объяви в функции)
Αλεχ
ну ок уговорили
Αλεχ
не переменная :)
ㅤ
Ты не забыл Share нажать?
Anonymous
Забыл
Anonymous
https://play.rust-lang.org/?gist=3e1189393b8a0b3ee5b884bd06c76d58&version=stable
Cuno
Чтобы тебе по этому указателю что-то писать, придется пилить unsafe
ㅤ
Ага
ㅤ
Здесь потому что нарушается mut ^ share
でゲソ
А тем временем atom.io переписывают на игрушечном языке: https://github.com/atom/xray
Не атом же. Электрон это гуевая обертка поверх браузерного рендера
でゲソ
за 2 дня выяснил, что макбук сосет настолько что это даже не смешно
Просто надо быть богоизбраным свифтером или обжективсишником
でゲソ
Loyd
Надо редактор на серво
Loyd
С растом
Loyd
Без жс
Αλεχ
Есть же IDEA
Αλεχ
и студия вроде
Αλεχ
тоже могёт
Αλεχ
native ftw
Anonymous
Чтобы тебе по этому указателю что-то писать, придется пилить unsafe
А как еще сделать, чтобы три мутабельных референса было?
Αλεχ
А зачем тебе менять одно значение из трех мест?
Anonymous
по условию надо
Αλεχ
Прям так и написано?:) Я думал ты что-то более реалистичное делаешь
Αλεχ
Это не подъеб, просто обычно можно решить иначе
Αλεχ
не расшаривая мутабельный стейт на пол программы)
Anonymous
задача выше висит, она не моя и менять ее условия или говорить "так нельзя" я не хочу
でゲソ
Есть же IDEA
Окей, без жвм
Αλεχ
Окей, без жвм
а что с ней не так?
Andrei
Окей, без жвм
да, зачем без JVM?
でゲソ
Чего ради
Safort
Вы просто не умеете верстать под Servo
Согласен. Понаберут джунов, без опыта всёрстки под современные браузеры(Серво), а потом жалуются!
Anonymous
https://play.rust-lang.org/?gist=5afe60ee487c91f84cb29c79b50b9dd4&version=stable
тут нет трех хранимых mutable reference
でゲソ
Смотрел в серво, увидел блюпуп апи, узнал что спеку блюпуп не дают инди
Anton
Не атом же. Электрон это гуевая обертка поверх браузерного рендера
Xray is an experimental Electron-based text editor informed by what we've learned in the four years since the launch of Atom.
Anonymous
ну... Да, так получается нечто похожее через архитектурное читерство. Эдакое избегание указателей
Andrei
Чего ради
Это вопрос?
Loo
ну... Да, так получается нечто похожее через архитектурное читерство. Эдакое избегание указателей
это не читерство. просто тебя борроучекер заставляет писать код правильно относительно работы со ссылками
Anonymous
А если у меня массив с объектами и надо поменять местами два объекта, но так, чтоб перемещались не объекты, а только что-то указателеподобное?
Anonymous
Тут по-моему таким архитектурным читерством не обойтись
big
slice::swap мб?
Anonymous
и оно внутри не использует unsafe?
big
все рано или поздно его использует
Cuno
и оно внутри не использует unsafe?
Это не имеет значения, если интерфейс safe.
Anonymous
А... То есть либо архитектурное читерство, либо unsafe в конфетной обертке =) Я кажется начинаю понимать
Anton
Ты бы прочитал сначала книгу официальную и растономикон
big
во. Но не в конфетной обертке, а скорее программиста в обертку завертывают, чтобы не отстрелил себе ничего
big
но всегда ее можно снять
big
а дальше уже танцы с лезвиями на мокром полу, как в старом добром си
Anonymous
Ну тут как с функциональными языками, в которых сишные библиотеки оборачиваются в "чистые функции", чтобы тоже нельзя было играться
Anonymous
А можно через unsafe нечищенную память оставить после завершения программы, если очень хочется?
Anton
Даже через safe можно: https://doc.rust-lang.org/std/mem/fn.forget.html
Anonymous
let my_num: *mut i32 = libc::malloc(mem::size_of::<i32>()) as *mut i32; да, можно =)
Anonymous
тоже самое касается не только функциональных языков. Взять например JVM
я не ругаюсь, это с одной стороны даже хорошо, хоть с другой мне и обидно, что чужой unsafe код из стандартной библиотеки использовать хорошо, а писать свой - плохо, ты не справишься, ты засегфолтишь, ты глупый программист"
big
я не ругаюсь, это с одной стороны даже хорошо, хоть с другой мне и обидно, что чужой unsafe код из стандартной библиотеки использовать хорошо, а писать свой - плохо, ты не справишься, ты засегфолтишь, ты глупый программист"
зачем рисковать, если скорее всего есть safe решение? Вот в чем вопрос. С другой стороны, unsafe не запрещен. Главное чтобы спроектировать абстракцию которая защитит польщователя от кучи других unsafe”ов
doc
Scientist вот ты все никак не откажешься от глобальных переменных, а ты корырялся в легаси кодовых базах, которые хрен куда сдвинешь из-за глобальных переменных? И обычно это какие-то тяжелые объекты. Их сложно тестировать, переинизиализировать, в несколько потоков юзать, кастомизировать код конкретный случай. И со временем приходит уже отвращение к подобным подходом.
big
вот пример кстати https://github.com/paritytech/polkadot/tree/master/substrate/environmental