Так, отлично. Это то, чего я хотел. Но мне он

правда ничего не говорил на этот счет (правда у меня код немного больше, чем один файлик)

Если разделить код на несколько файлов, то он будет ругаться?

18 ответов

13 просмотров

Файлы не имеют значения. Здесь всё только в функции упирается. Мы тебе писали уже много раз. Твоя проблема была в том, что ты думал, что пишешь общий код для T: Clonable, но на самом деле ты написал какую-то часть своей общей логики под конкретный тип char. Вот тебе нужно было точку уточнения типа просто вынести на уровень выше, а эту самую общую логику изначально написать обобщенной по T: Clonable.

Well Done- Автор вопроса
Kai Ren
Файлы не имеют значения. Здесь всё только в функци...

Я писал не для char, а просто для copy из-за невнимательности. Я считал, что компилятор должен был мне сразу подсказать. Сейчас я вижу, что тебе он сказал, а значит, должен был и мне, но по непонятной мне причине он ничего не сказал. Опять же, код я использовал также, указывая, что мой тип S: Symbol (читай T: Clonable). Мне бы понять, что я делал не так

Well Done- Автор вопроса
Пух
Для Container<char> ты писал там

Это конкретизация - мне все равно ее делать

Well Done- Автор вопроса
Well Done
Это конкретизация - мне все равно ее делать

Типо, представь эту строку в тестах, например

Well Done
Я писал не для char, а просто для copy из-за невни...

Ты писал именно для char. А так как char реализует Copy, оно тебе позволяло, ибо компилятор никак не знал что ты не хочешь copy, ты ему об этом никак не сказал. Ты только сказал что ты используешь char.

Well Done- Автор вопроса
Kai Ren
Ты писал именно для char. А так как char реализует...

Какие у меня есть способы ему об этом сказать, писать let some_shit = Container<Clonable>::new(конкретный тип)? Сорян за псевдорастокод

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=8eb6c02999859a5fdaf0d514b6334fbc Смотри, и попробуй заменить в сигнатуре char на Box<char>. И сравни с закоментированным кодом. Сечёшь разницу?

Вооо…. вот так тоже можно, но пока не на стейбле. На nightly есть TAIT фича, и можно будет писать: Container<impl Clonable>::new(конкретный тип)

Kai Ren
Вооо…. вот так тоже можно, но пока не на стейбле. ...

А оно в итоге не выведется как конкретный тип?

Пух
А оно в итоге не выведется как конкретный тип?

Ну тайпчекаться не должно, ибо мы специально его “затёрли”. Ведь когда у нас -> impl Clonnable функа возвращает, конкретный тип не выводится. Здесь читай то же.

Well Done- Автор вопроса
Kai Ren
https://play.rust-lang.org/?version=stable&mode=de...

Ты пишешь с конкретным чаром, а у меня его в функциях нет конкретных типов (все строется вокруг этого Clonable, а конкретные типы я использую только в тестах, например) Я не очень понимаю, что ты пытаешься сказать. Если бы я ИСПОЛЬЗОВАЛ конкретные типы, то компилятор это заметил, но я руководствовался структурами и объектами (ака структурами), которые имеют реализацию моего Clonable (собственно, как в коде написано) Хз, что насчет как раз impl Clonable в аргументах и возвращаемых значениях? Для меня же важны только некоторые свойства данного объекта. Пользователь не потеряет тип (получив вместо него нечто impl Clonable)

Well Done
Ты пишешь с конкретным чаром, а у меня его в функц...

Копи у тебя в мейне происходит, если ты получил откуда-то impl Cloneable, то все оке будет

Well Done
Ты пишешь с конкретным чаром, а у меня его в функц...

Так твоя проблема и проистекла о того, что ты где-то что-то написал конкретно под char, а не под T: Clonable. Вот оно у тебя и отвалилось. Иначе бы не отвалилось. Мои поинт не в том, чтобы ты использовал конкретные типы, а наоборот.

Well Done- Автор вопроса
Kai Ren
Так твоя проблема и проистекла о того, что ты где-...

По крайней мере пока я этого не увидел в своем коде. Похер, мне все равно его переписывать Буду, например, заменять алиас хэшмапы на конкретный тип

Well Done
Какие у меня есть способы ему об этом сказать, пис...

Кстати, ты можешь сэмулировать нужный тебе эффект, написав хэлпер-функцию: fn clonable<T: Clonnable>(v: Container<T>) -> Container<T> { v }

Well Done- Автор вопроса
Kai Ren
Кстати, ты можешь сэмулировать нужный тебе эффект,...

Интересный способ не писать аннотацию типов ^^

Похожие вопросы

Обсуждают сегодня

Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
7
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Есть тут кто занимается разработкой серваков майна? Или знакомые
meow *
3
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Есть ли лимиты на кол-во вебхук по домену? Стоит в данный момент 900+ ботов и бывает бот перестает отвечать (не приходят вебхуки) 🐒 Помогает только перезапуск
ᅠ [ Кому не ответил, дублируйте ]
11
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Товарищи, здравствуйте Подскажите, пожалуйста, может кто-нибудь сталкивался с такой задачей Через вебапку можно сканировать qr-код, а есть ли возможность считывать nfc?
Artem Stormageddon
8
Карта сайта