Sergey
так он перемещаться будет
Sergey
два раза echo(bar) не вызывать
Pavel
хочу echo() без клонирования
та а как ты хочешь? или клонировать или перемещать
Sergey
по ссылке
Денис
но у тебя into перемещает же объект
Pavel
дак, T и String у тебя как бы разные по своей природе объекты
պլհկ
передавай str
Денис
у него сигнатура into(S), а не into(&S)
պլհկ
зачем тебе вообще String
Sergey
у него сигнатура into(S), а не into(&S)
так ежели поменять на into<&String> будет аналогичное
Sergey
зачем тебе вообще String
конкретно это пример
պլհկ
пример того как делать не надо
Sergey
😄
պլհկ
идиоматично имплементить Display
պլհկ
to_string() заимплементится автоматически
Денис
https://play.rust-lang.org/?gist=bab032e596f33d7fbc2e741bf9b933ba&version=stable
Денис
пользуйся
Pavel
ну даже если момент идиоматичности не принимать в счет, у тебя по сути производится новый тип, и в бОльшем кол-ве случаев - это будет выделение определенного сегмента памяти и размещение его там, так что в любом случае это выделение какого-то ресурса
Sergey
спасибо
Денис
echo("lol"); тоже будет работать
Денис
не за что)
kitsu
Что нынче модно юзать для тг ботов?
Alexander
Что нынче модно юзать для тг ботов?
Зависит от того : на Токио или нет.
kitsu
а что, есть те, что не на токио?
Денис
я кстати не видел имплементаций, которые бы использовали не лонг-поллы
Денис
но я вообще их не много видел)
Alexander
Вопрос утренний: https://play.rust-lang.org/?gist=0614471109232d41c7e20906a145f927&version=nightly
Alexander
ошибка говорит о том, что тип не тот, видимо ссылка нужна, но что именно не так понять не могу.
Aleksey
там не должно быть self.0.take(2)...?
Alexander
семён семёныч! спасибо.
Aleksey
хотя там дальше на Debug ругается
Alexander
ага, это наверное второй вопрос :)
Alexander
хотя кажется компилятор почти написал как поправить
Aleksey
ага, это наверное второй вопрос :)
https://play.rust-lang.org/?gist=0f12b161131dd6172cf72df2261bf759&version=nightly не уверен, правильно ли так еще пришлось ссылку убрать
Victor
ну тогда все значения будут уничтожены после print() очень сомневаюсь что автор хотел такого )
Alexander
ага, у меня тоже самое получилось, но да, принтом убивать не то :)
Alexander
клонировать тоже не огонь :(
Alexander
всё заработало.
Aleksey
всё заработало.
а что в итоге сделал?
Alexander
by_ref() , мне в irc подсаказали. или по идее можно into_iter сделать. хотя последнее что-то не получилось.
Aleksey
тогда &mut self надо?
Alexander
ага, вот тоже не нравится.
Alexander
мда: https://play.rust-lang.org/?gist=37b993b3d702e2610c0e5a0026e0977f&version=nightly
Alexander
не просто распечатать вектор оказывается, надо много чего изучить ещё.
Anonymous
А как сделать глобальную mutable переменную, чтоб отовсюду ее изменять было можно?
Filipp
https://video.twimg.com/tweet_video/DXnBGfVXkAAJLZx.mp4
Filipp
Примерно так
Filipp
Но вообще погугли global mutable state
Anton
Вроде через ансейф можно было
Anton
Но лучше так не делать
Anonymous
https://video.twimg.com/tweet_video/DXnBGfVXkAAJLZx.mp4
C удовольствием на си переключусь, если смогу собрать emscripten в 32битном cygwin
Anton
https://stackoverflow.com/questions/19605132/is-it-possible-to-use-global-variables-in-rust
Anonymous
Спасибо, я перейду на си, раз в расте настолько сложно тупо глобальную переменную сделать
պլհկ
Ок
Артем
Они не нужны более чем везде, поэтому никто и не задумывался, что бы их вообще можно было делать.
Anonymous
Они не нужны более чем везде, поэтому никто и не задумывался, что бы их вообще можно было делать.
А ничего, что любая программа - это состояние и работа с этим состоянием? Или rust уже функциональный язык?
Anonymous
видимо, rust больше поможет для библиотек с функциями и без состояния, которую потом можно будет использовать через си-обертку
Anton
Так суть не в состоянии
Артем
Ну как минимум Rust стремится быть функциональным, и как максимум глобальные переменные уже признаны вселенским злом.
Anton
Суть в том, чтобы данные только в виде дерева вызовов передавать по стеку туда-обратно
Anonymous
Ну как минимум Rust стремится быть функциональным, и как максимум глобальные переменные уже признаны вселенским злом.
осталось только признать глобальные функции и глобальные объекты злом. Чтож, если Rust - что-то среднее между функциональным и императивным языком, тогда понятно, почему так сложно с ним работать
Anton
Функции-то все глобальные
Anton
И раст очень даже императивен
Anton
Функции-то все глобальные
Ну кроме локальных
Evgεny
Толсто тут
kosc
А где потоньше?
Andrey
осталось только признать глобальные функции и глобальные объекты злом. Чтож, если Rust - что-то среднее между функциональным и императивным языком, тогда понятно, почему так сложно с ним работать
создаётся впечатление, что ты упёрся в какую-то проблему, не смог в ней разобраться, разозлился на весь раст, и сделал для себя необъективные выводы о ненужности раста.
Andrey
и из-за эмоционального всплеска не понимаешь, что выводы необъективны
Anonymous
без сегфолтов, глобальных переменных и мемори-ликов, объективно крутые библиотеки получатся
Артем
Глобальные объекты это порождение тех кто не может жить без глобальных переменных
Артем
То есть тоже зло, но иногда имеет право на жизнь, как goto
Anonymous
а можно пример хотя бы одной программы без глобальных переменных? Не библиотеки, а программы
Anonymous
любая программа с классами?
а... То есть если я буду хранить свои глобальные переменные в глобальном классе - это уже не зло?
Andrey
Глобальные объекты это порождение тех кто не может жить без глобальных переменных
обычно это ошибка проектирования, но бывают действительно вещи которые не сделать без глобальных переменных. Естественно в языках типа си, где все просто. Но даже там можно это обернуть так, что вреда от нее не будет. А вот goto, да, зло.