Rust: алғашқы қадамнан жеке жоспарлау құралына дейін 55-сабақ (барлығы 60)
Баптаулар мен құжаттама
Сабақ 55. Дерек файлының жолын таңдауды түсіндіріп, өзге адам орындай алатын іске қосу нұсқауын жазу.
Мәтін ИИ көмегімен аударылды.
Жолдарды, аргументтерді және пәрмендерді еске түсіріңіз.
Таныс бейне және тірек сызба
Хаттың мекенжайын хаттың өзінде көрсетуге, дәптерде сақтауға немесе әдепкі мекенжайды алуға болады. Хаттың өзінде көрсетілгені басым. Тірек сызба: пәрмендегі жол → ол жоқ болса, ортадағы жол → ол да жоқ болса, әдепкі жергілікті жол. Орта — бағдарламаны іске қосқан үдеріс оған беретін баптаулар. Ұқсастық салыстырмалы жолды толық жолға айналдырмайды: tasks.json ағымдағы қалтаға тәуелді.
Option<PathBuf> жолдың болуы да, болмауы да мүмкін екенін білдіреді. if let Some(path) жол бар кезде ғана оны алады. Алғаш табылған жол қайтарылады; кейінгі тармақтар орындалмайды. PathBuf::from жол мәнін жасайды, display() оны адамға көрсетеді. /// — қызмет алдындағы құжаттама түсіндірмесі; Cargo оны cargo doc құратын бетке енгізеді. Алғашқы үлгі нәтиже өзгермес үшін мәндерді шақыруға тікелей береді; шын бағдарламада пәрмен жолы args арқылы, орта мәні std::env::var_os арқылы алынады. Орта мәні жоқ болса, var_os None қайтарады.
Іске қосып, талдаңыз
Тәуелділігі жоқ Cargo жобасын ашып, алғашқы Rust үзіндісін src/main.rs файлына көшіріңіз. cargo run баптаусыз және ортадағы жолмен таңдау нәтижесін көрсетеді. Одан кейін cargo doc --no-deps орындаңыз: бұл пәрмен тәуелділіктердің беттерін қоспай, жобаға арналған HTML-құжаттаманы target/doc қалтасында жасайды. Оны файл басқарғышынан шолғышта ашуға болады. README — жобаның түбіндегі кәдімгі README.md файлы: онда талаптар, іске қосу пәрмені, дерек жолы мен қате кезіндегі әрекет болуы керек.
use std::path::PathBuf;
/// Дерек жолын таңдау: пәрмен, орта, содан соң әдепкі жергілікті жол.
pub fn choose_path(command: Option<PathBuf>, environment: Option<PathBuf>) -> PathBuf {
if let Some(path) = command {
return path;
}
if let Some(path) = environment {
return path;
}
PathBuf::from("тапсырмалар.json")
}
fn main() {
println!("Әдепкі жол: {}", choose_path(None, None).display());
println!(
"Ортадағы жол: {}",
choose_path(None, Some(PathBuf::from("отбасы.json"))).display()
);
}
Әдепкі жол: тапсырмалар.json
Ортадағы жол: отбасы.json
Бетке қарамай жауап беріңіз
- Үш жол да берілсе, қайсысы таңдалады?
- Салыстырмалы
tasks.jsonжолы неге тәуелді? - README мен
///түсіндірмесі кім үшін?
Тапсырма
Міндетті. Пәрмендегі және ортадағы жол қатар берілген үшінші choose_path шақыруын қосып, таңдалған жолды шығарыңыз. Содан соң README.md жасаңыз: Rust орнату, cargo run арқылы іске қосу, жолдар басымдығы және ағымдағы қалта туралы ескерту болсын. Нұсқауды сабақты көрмеген адамға беріңіз немесе жаңа бос қалтадан өзіңіз орындаңыз.
Жауаптар
Жауаптарды көрсету
choose_path(Some(PathBuf::from("жұмыс.json")), Some(PathBuf::from("отбасы.json"))) шақырыңыз. README үшін Cargo орнатылған деп жорамалдамаңыз: 5–6-сабақтағы нұсқауды пайдаланыңыз.
use std::path::PathBuf;
/// Дерек жолын таңдау: пәрмен, орта, содан соң әдепкі жергілікті жол.
pub fn choose_path(command: Option<PathBuf>, environment: Option<PathBuf>) -> PathBuf {
if let Some(path) = command {
return path;
}
if let Some(path) = environment {
return path;
}
PathBuf::from("тапсырмалар.json")
}
fn main() {
println!("Әдепкі жол: {}", choose_path(None, None).display());
println!(
"Ортадағы жол: {}",
choose_path(None, Some(PathBuf::from("отбасы.json"))).display()
);
println!(
"Пәрмендегі жол: {}",
choose_path(
Some(PathBuf::from("жұмыс.json")),
Some(PathBuf::from("отбасы.json"))
)
.display()
);
}
Әдепкі жол: тапсырмалар.json
Ортадағы жол: отбасы.json
Пәрмендегі жол: жұмыс.json
Осы оқу жобасына арналған README.md үлгісі:
# Тапсырмалар: файл жолын таңдау
1. https://www.rust-lang.org/tools/install бетін ашып, өз жүйеңізге арналған Rust-ты орнатыңыз. Жаңа терминал ашып, `cargo --version` арқылы тексеріңіз.
2. Жоба қалтасында `cargo run` орындаңыз.
3. Пәрмендегі жол ортадағы жолдан басым; екеуі де жоқ болса, ағымдағы қалтадағы `тапсырмалар.json` алынады. Бұл оқу үлгісінде мәндер кодқа тікелей берілген; файл әлі жасалмайды.
4. Cargo қате көрсетсе, мәтінін оқып, пәрменді `Cargo.toml` бар қалтада орындағаныңызды тексеріңіз.
cargo doc --no-deps орындап, жасалған құжаттамадан choose_path сипаттамасын табыңыз.
Тексергеннен кейін
Ортадағы баптау құпия дерек сақтайтын сенімді орын болмауы мүмкін; мұнда тек жол беріледі. Шын органайзер үшін дерек орны, көшірме жасау, бүлінген файлмен әрекет және қалған шектеулер жазылуы керек. cargo doc құжаттамасы.
Пікірлер (0)
Пікір қалдыру үшін кіріңіз →
Әзірге пікір жоқ. Бірінші болыңыз.