2015-03-20 3 views
-2

Как я могу ввести аргументы командной строки в Rust, используя docopts? Я бы хотел просто ввести u8 в вектор и проанализировать его с помощью docopts.Как ввести аргумент командной строки с docops?

+1

Добро пожаловать в переполнение стека! В интересах получения более качественных ответов, пожалуйста, позаботьтесь о [задайте более интересные вопросы] (http://stackoverflow.com/help/how-to-ask). В этом случае вы должны показать примерный код того, что вы пробовали. Или, может быть, некоторые результаты поиска для вещей, которые вы искали, но не понимаете. По крайней мере, вы можете написать примерный код (или псевдокод), который лучше объясняет, что вы хотите сделать. – Shepmaster

ответ

0

Вы можете использовать метод std::env::args для получения итератора. Затем вы можете использовать .collect на итераторе, чтобы получить вектор String s.

use std::env; 
fn main() { 
    let args: Vec<String> = env::args().collect(); 
    println!("{:?}", args); 
} 

Пример вывода:

[email protected]:~$ rustc t.rs 
[email protected]:~$ ./t abc def 
["./t", "abc", "def"] 
-1

Вот пример, который я заканчивал писать.

import os 
from docopt import docopt 

arguments = docopt(__doc__, version= '1.0.0') 

def walk(dir): 

    for root, dirs, files in os.walk(dir): 
     for filename in files: 
      print os.path.join(root, filename) 

if __name__ == '__main__': 

    if arguments['-d'] is None: 
     print __doc__ 
     exit(0) 
    else: 
     walk(arguments['-d']) 

Примечаниеif arguments['-d'] is None: линия, это то, как вы называете аргументы.

Эта строка arguments = docopt(__doc__, version= '1.0.0') устанавливает переменную arguments.

+1

Это не написано в ржавчине ... – Lexka

Смежные вопросы