Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Mar 27 2015 20:26
    User @sudodoki banned @doneck-russia from this room
  • Mar 19 2015 20:58
    User @mr-mig banned @pgr-ru from this room
  • Mar 15 2015 01:09
    User @mr-mig banned @putin-hero from this room
  • Mar 15 2015 01:09
    User @mr-mig banned @stepan-bendera from this room
Ulric Wilfred
@shamansir
да, вы правы по поводу что поторопился тогда. меня смущают присвоения в методах и memory-replace, это не очень функциональный путь и иммутабельность нарушается. возможно из push нужно возвращать новый список, если уж вы используете cons-ячейки.
Ulric Wilfred
@shamansir
Denis Borovikov
@dborovikov
Это учебный пример, мне интересно как работать с мутабельными структурами. С иммутабельными все понятно. Я посмотрел стандартные коллекции, там зачачстую raw указатели используются, но это если ничего не получится с обычными.
Paul Colomiets
@tailhook
Ну походу там достаточно было звёздочку переместить: http://is.gd/YpW2ok
Denis Borovikov
@dborovikov
спасибо.. я нифига не понял что произошло, честно говоря )) все-таки rust довольно сложный язык
неужели аргумент match-а в другом скоупе?
Paul Colomiets
@tailhook
Нет, просто ты когда делаешь match для reference'а, то он берёт от всего что проматчил ссылки тоже. А когда ты делаешь match от enum'а (по значению), то enum типа распадается на запчасти, соответственно ты получаешь значения, а не ссылки на них, ну и соответственно може переместить их дальше куда-нибудь
Denis Borovikov
@dborovikov
хм, вообще-то как мне казалось в моем случае enum тоже разбирается на запчасти. что бы брались ссылки там надо явно ref прописать, типа Node::Cons(ref data, ref tail)
Paul Colomiets
@tailhook
Ну в последнем примере типа да, но ошибка говорит, видимо что ты этого просто сделать не можешь из ссылки. Хотя ошибка странноватая, по-этому не сильно уверен.
artem.prikhodin
@dsociative
Привет, а можно как-нибудь обойти поля в Struct ?
Андрей Листочкин (Andrey Listochkin)
@listochkin
по-моему нельзя. а зачем тебе?
artem.prikhodin
@dsociative
Хочу описать какую-нибудь древовидную иерархию, а потом обойти каждый его айтем и проинициализировать
Андрей Листочкин (Andrey Listochkin)
@listochkin
не совсем понятно, что именно ты хочешь сделать, но обычно для “проинициализировать” просто определяют new для структуры
как вариант “сделать все для каждого поля” определи итератор http://doc.rust-lang.org/core/iter/
а как вариант “сконвертировать из другого формата” http://doc.rust-lang.org/serialize/index.html
artem.prikhodin
@dsociative
Например вот есть такие структуры https://gist.github.com/dsociative/32d9b4b0a465ff8dc546 , хочется в new обойти их и для каждой сформировать свой ключ, но без хардкода
ибо структуры могут быть разные и иметь много вложенностей, в какую сторону смотреть ?
Paul Colomiets
@tailhook
можно попробовать decodable
Андрей Листочкин (Andrey Listochkin)
@listochkin
а я думаю, можно макросами препроцессить код, чтобы он эти ключи повставлял
или на уровне аннотаций
artem.prikhodin
@dsociative
ок, спасибо
Ghost
@ghost~54efa10d15522ed4b3dc8981
Всім привіт.
Як паралельно встановити nigtly та beta?
Alex Miasoiedov
@msoedov
@iho rust-lang/rust#20836
подивись env якщо коротко
Vladimir Pouzanov
@farcaller
Собрать обе версии с --rpath?
Ghost
@ghost~54efa10d15522ed4b3dc8981
А на расті вже писали щось корисне?
От в go-lang є docker, а rust щось таке роблять?
Взагалі є такі області явно незамінний? "Загального призначення" та "сфокусована на безпечній роботі з пам'яттю і забезпеченні високого паралелізму виконання завдань " мені нічого не кажуть.
Ruslan Shevchenko
@rssh
embedded та hpc
Ghost
@ghost~54efa10d15522ed4b3dc8981
@rssh що це значить?
Viktor Sovietov
@vsov
тра трейдінг пописать, доки джава нас не вбила )
Ruslan Shevchenko
@rssh
embedded -- замість c у всяких aurdino-like
Ghost
@ghost~54cac78adb8155e6700f3e5a
гайз, я понимаю что это ua чатик, но мне как беларусу непонятно что вы говорите :(
Ruslan Shevchenko
@rssh
hpc -- hight performance. Ну да -- в трейдингу з java тяжко
замість = вместо
Viktor Sovietov
@vsov
там з усім тяжко, але може з rust буде трохи легше. хоча, ще достеменно невідомо, де на тому новому полі розкладено граблі
Ghost
@ghost~54efa10d15522ed4b3dc8981
@IRus так вроде украинский очень похож на беларуский.
Больше чем на руский.
Ruslan Shevchenko
@rssh
(остальное вроде одинаково)
Ghost
@ghost~54cac78adb8155e6700f3e5a
@iho на самом деле многие слова сложно понять
тра трейдінг пописать, доки джава нас не вбила )
тра, вбила
Ghost
@ghost~54efa10d15522ed4b3dc8981
тра(треба) = надо
вбила = убила
Ghost
@ghost~54cac78adb8155e6700f3e5a
трэба и у нас есть
спасибо, извините что со своими языками вмешиваюсь)
Ruslan Shevchenko
@rssh
кстати -- чем больше вы говорите/читаете на незнакомом вам языке, тем лучше для здлровья и для мышления ;)
Ghost
@ghost~54efa10d15522ed4b3dc8981
Беларуский официальний кстати
"Русский, Украинский, Белорусский и Английский - официальные языки сообщества. Если вам задали вопрос на одном из этих языков и вы можете на нем изъясняться, пишите ответ на том же языке."
Ghost
@ghost~54cac78adb8155e6700f3e5a
@iho вопросов нет :+1:
Ruslan Shevchenko
@rssh
ну що-ж, будемо консультуватися з http://www.languages-study.com/belarussian-links.html
Ghost
@ghost~54efa10d15522ed4b3dc8981

А як доповнити метод в rust ?
В пітоні я б написав

 def method(self):
        var = super().method()
        return var + 1

А в расті як таке зробити?

Ghost
@ghost~54efa10d15522ed4b3dc8981
trait CanCalc {

    fn calc(&self) -> i32;

}

struct Man {
    name: &'static str

}
impl Man {
    fn calc(&self) -> i32 {
        6
    }


}

impl CanCalc for Man {
    fn calc(&self) -> i32 {
        let var = self.calc();
        println!("{}",var);
        return 67;
    }
}


fn main() {
    let i: Man = Man{name: "man"};
    println!("{}",i.calc());
}
Відповідь 6. Пічалька.