странное поведение Closures

40 views
Skip to first unread message

Артур Душелюбов

unread,
Jan 26, 2015, 11:19:04 AM1/26/15
to rust-r...@googlegroups.com
Почему при попытке скомпиллировать код приведенный ниже происходит ошибка.

fn main(){
    let x = 0;
    let handler = |&:|{
        println!("{}", x);
    };
    
    handler();
}

пример на play rust http://is.gd/0fLoN0

Артур Душелюбов

unread,
Jan 26, 2015, 11:53:07 AM1/26/15
to rust-r...@googlegroups.com
лучится указанием типа переменной x, т.е. let x = 0is;

понедельник, 26 января 2015 г., 19:19:04 UTC+3 пользователь Артур Душелюбов написал:

Nikolay Pavlov

unread,
Jan 31, 2015, 8:02:40 AM1/31/15
to Артур Душелюбов, rust-r...@googlegroups.com
Можно не указывать тип переменной, а написать ещё один <code>println!</code> 
перед или после замыкания. Или можно вместо println!() использовать функцию

    fn foo(x: i32) {
        println!("{}", x);
    }

. Насколько я понял, вы столкнулись с ошибкой где‐то в шаблонной магии, 
препятствующей работе вывода типов.

26 января 2015 г., 19:53 пользователь Артур Душелюбов <ticketsf...@gmail.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу "Rust по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес rust-russian...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/rust-russian/8f8b677b-350e-4f0f-9a1a-b136ab7e53ff%40googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages