The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз языка программирования Rust 1.22"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Релиз языка программирования Rust 1.22" +/
Сообщение от Аноним (-), 26-Ноя-17, 06:42 
Да вроде не так его там и много.

Вот, например, примеры кода из руководства:

impl Config {
    pub fn new (args: &[String]) -> Result<Config, &'static str>  {
        if args.len() < 3 { return Err("not enough arguments"); }
        let cd = Config {query: args[1].clone(), filename: args[2].clone()};
        Ok(cd)
    }
}
...
pub fn search<'a>(query: &str, contents: &'a str) -> Vec<&'a str> {
    let mut res = Vec::new();
    for line in contents.lines() {
        if line.contains(query){
            res.push(line);
        }
    }
    res
}
...
fn read_file (file_name: String) -> Result<String, io::Error> {
    let file = File::open(file_name)?;
    let mut buf_reader = BufReader::new(file);
    let mut contents = String::new();
    buf_reader.read_to_string(&mut contents)?;
    Ok(contents)
}
...
fn main() {
    let args: Vec<String> = env::args().collect();

    let config = Config::new(&args).unwrap_or_else(|err| {
        println!("Problem parsing arguments: {}", err);
        process::exit(1);
    });

    if let Err(e) = run(config) {
        println!("Application error: {}", e);
        process::exit(1);
    }
}


Вполне читаемо. Определения функций только сложно читать из-за нагромаждения дженериков и "времен жизни".

if let Err(e) = run(config) {} - это да, сахар от match

Особенно доставляет концепция, что почти все пишется в форме выражений fn getdouble2() {x*2} .

Не совсем понятно, зачем snake_case встроен на уровне компилятора.

? - да, действительно сахар

let - да, типы выводятся. Но тип всегда известен

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз языка программирования Rust 1.22, opennews, 24-Ноя-17, 12:20  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру