Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    tanriol
    @tanriol:matrix.org
    [m]
    Ошибка в чём именно? Посмотри на такой вариант
    sobaka_v_kepke
    @chabapok_twitter
    ну, собственно, в этом и ошибка
    такое должно компилиться и работать
    tanriol
    @tanriol:matrix.org
    [m]
    Формально условие Key<'static>: Borrow<Key<'other>> не выполняется, так что не должно при том, как сейчас этот интерфейс прописан.
    sobaka_v_kepke
    @chabapok_twitter
    Ну получается, что по факту так есть - но так быть не должно. Это ограничивает функционал.
    tanriol
    @tanriol:matrix.org
    [m]
    Я просто советую сперва спросить себя, хочешь ли ты изменить сигнатуру этой функции (и, возможно, сломать тех, кто зависит от текущей), или досыпать магии, чтобы оно с текущей работало. И если магии - то куда именно.
    sobaka_v_kepke
    @chabapok_twitter
    если мне понядобится ВЖ из ключа-обазца, то я достану нужную ссылку из ключа-образца. А ключ, что в мапе нужен в том числе для ВЖ его ссылок! Вопрос "и что теперь делать?" - это как бы другой вопрос. Ну если бы я это решал - или изменил бы сигнатуру функции, или добавил бы другую функцию, а эту задепрекейтил бы.
    а если сильно-сильно надо такой функционал - то это свой крейт, ясное дело, в котором рулишь ВЖ так, как ты это себе видешь.
    tanriol
    @tanriol:matrix.org
    [m]
    Вообще интересный вопрос, можно ли это сделать без ущерба для других случаев...
    sobaka_v_kepke
    @chabapok_twitter
    навскидку как мне видится - нет, но я такой спец, что чаще спашиваю про ВЖ, чем отвечаю. Так что могу и ошибаться.
    sobaka_v_kepke
    @chabapok_twitter
    всмысле не нет - а да. Нет всмысле ущеба не будет, как мне это видится.
    %)
    надо будет поупражняться и сделать свой крейт с таким функционалом...
    sobaka_v_kepke
    @chabapok_twitter
    а TokenTree/TokenStream, получается, никак невозможно скормить в marco_rules!. То есть, хочется в коде либы которая proc-macro = true имеющееся поддерево токенов разобрать макросом marco_rules!. Это невозможно?
    sobaka_v_kepke
    @chabapok_twitter

    то есть хочется что-то типа такого:

    macro_rules! foo {
        (abc) => { println!("Yes") }
        (def) => { println!("No") }
    }
    
    
    fn main() {
        let x = "abc";
        foo!(x)
    }

    при этом, значение пееменной x приходит из TokenTree

    sobaka_v_kepke
    @chabapok_twitter
    то есть - оно известно на этапе компиляции
    tanriol
    @tanriol:matrix.org
    [m]
    Я такого способа не знаю, увы.
    Возможно, для этого есть какой-нибудь крейт.
    sobaka_v_kepke
    @chabapok_twitter
    а serde не умеет раскладывать json поверх уже существующей структуры? Только новую делает?
    да, похоже что не умеет
    Samsunggora
    @Samsunggora
    Добрый день! С таким вопросом, Есть ли какой либо гайд лайн для изучения раста? Начал читать Программирование на языке Rust Джим Блэнди. Невероятно сложно разово воспринимать такой объем сухого текста, и переходить с вычисления найибольшего делителя к множеству мандельброта. Можете пожалуйсто поделиться своей историей, как вы учили раст? Дать какие либо советы? потому что руки опускаются. За ранее большое спасибо
    3 replies
    sobaka_v_kepke
    @chabapok_twitter
    не отвечайте, пожалуйста, так, чтобы нужно было разврачивать. Неудобно же читать.
    Andréy Lesnikóv
    @ozkriff
    @Samsunggora на всякий: ты же знаешь, что основная часть рураст тусовки перералась в телегу, да? в тамошнем новичковом чате есть закреп с ссылками
    2 replies
    sobaka_v_kepke
    @chabapok_twitter
    а я не знал
    sobaka_v_kepke
    @chabapok_twitter
    так а эта конференция куда проброшена? Ее нету в телеграмовском новичковом чате
    tanriol
    @tanriol:matrix.org
    [m]
    Этот чат, по-моему, только из Матрицы ещё доступен.
    sobaka_v_kepke
    @chabapok_twitter
    а я то думаю, и чего тут так мало разговоров стало
    tanriol
    @tanriol:matrix.org
    [m]
    Ну так кто куда разбежались - кто в телеграм, кто в англоязычные :-))
    Aleksey Melnikov
    @aleksmelnikov
    Как добавить в шаблон поиска пустую строку.
    Чтобы проитерирвоатсья по двум комментариям
    tanriol
    @tanriol:matrix.org
    [m]
    @aleksmelnikov: А что должно происходить в случае, если пустая строка есть внутри комментария?
    tanriol
    @tanriol:matrix.org
    [m]
    Скажем, если задача "взять до первого */", то (.*?) должно помочь
    IvanKirsanov
    @KirsanovIvan
    Привет всем. Вопрос от новичка. Есть задача (в учебнике по Rust) - найти mode of list. У меня есть список вектором, с помощью HashMap я посчитал сколько каждый элемент встречается, тут проблем нет. Но сама задача состоит в том, чтобы вывести тот элемент, который встречается больше всего раз (то значение которое встречается в списке наибольшее количество раз). Но в учебнике нет ни слова о том, как обращаться к ключу через value. Подскажите, как решить эту задачу?
    Вот так задача звучит в учебнике: Есть список целых чисел. Создайте функцию, используйте вектор и верните из списка: среднее значение; медиану (значение элемента из середины списка после его сортировки); моду списка (mode of list, то значение которое встречается в списке наибольшее количество раз; HashMap будет полезна в данном случае).
    tanriol
    @tanriol:matrix.org
    [m]
    А зачем обращаться к ключу через value?
    IvanKirsanov
    @KirsanovIvan
    Чтобы найти перебором value наибольшее число и вывести ключ - моду списка
    У меня изначально вектор. Я в функции перевел его в хэшмап и дальше посчитал сколько раз встречается каждый из элементов. Выводится все четко, пара - элемент и количество. Но вот как теперь програмно выбрать тот элемент, который встречается больше всего раз и вывести его отдельно - пока не могу найти решения
    tanriol
    @tanriol:matrix.org
    [m]
    Одному value могут соответствовать много разных ключей. Эффективного способа достать один из них нет, но это здесь и не нужно. Советую перебирать не значения, а пары ключ-значение.
    IvanKirsanov
    @KirsanovIvan
    А на что проверять переборку? Т.е. как логически перебирать так, чтобы выявить наибольший ключ по итогу? Да и тут вот понял и правда, а если несколько ключей с одинаковым значением - что тогда мода списка? :-)
    for (key, value) in &map {
        println!("{}: {}", key, value);
    }
    tanriol
    @tanriol:matrix.org
    [m]
    Я бы смотрел на Iterator::max_by_key, если, конечно, в учебнике уже были итераторы. Можно и вручную, но менее элегантно :-)
    Если таких ключей несколько, я бы предположил, что подходит любой (если в условии нет уточнений)
    IvanKirsanov
    @KirsanovIvan
    Вот у меня код отлично выводит все ключи и количество. И я знаю сейчас свои данные в списке, могу без проблем вывести. У меня там чаще всего встречается число 53 - 3 раза. Но это не масштабируемая тогда версия. А как сделать так, чтобы пройдясь по хэшмапу итоговому я получил в конце возможность вывести "Чаще всего встречается число {} - {} раза", value, key
    Не, в учебнике еще не было :-) Но разве нас это должно пугать? :-) В учебнике и sort не было, чтобы найти средней элемент в векторе после сортировке :-) Но уже найден.
    IvanKirsanov
    @KirsanovIvan
    А как вручную? Мне просто чтоб логику понять как можно обращаться
    tanriol
    @tanriol:matrix.org
    [m]
    Ну как... видишь пару (ключ, значение), если значение больше, чем максимальное на сейчас, то запоминаешь его и его ключ.
    IvanKirsanov
    @KirsanovIvan
    А ведь идея :-) Я чет все вокруг перебора и сравнения значений между собой пытался построить логику :-) Спасибо!
    Но еще вопрос - а как сразу проверять пару и запоминать? Просто реально в учебнике вообще такого нет :-(
    tanriol
    @tanriol:matrix.org
    [m]
    Можно по отдельности в двух отдельных переменных, можно как кортеж (tuple) - тут уж как удобнее.