有了GPT+Copilot,學習 Rust 直接起飛
大家好,我是漁夫。
Rust 前中期學習曲線會更陡峭一些,但是今天咱們有了 AI 輔助,學任何編程語言,似乎也沒那么難了,不懂就往 GPT 去問,至少前期你會很快解決掉問題的。
比如,我想讀一個 CSV 文件,直接上 GPT 去咨詢。
它連 csv 里面的內容都給你生成了,這效率真高啊。
首先,我們來添加外部包: 使用csv和serde包。這些包可以通過在你的Cargo.toml文件中添加它們來引入。
也可以選擇,命令行添加:
cargo add serde --features derivecargo add csv
cargo add serde --features derive
添加后,我們嘗試遍歷這個文件是否真的存在數(shù)據(jù)。
代碼如下:
use csv::Reader;
use std::error::Error;
const CSV_PATH: &str = "./large_file.csv";
fn main() -> Result<(), Box<dyn Error>> {
let mut rdr = Reader::from_path(CSV_PATH)?;
for result in rdr.records() {
let record = result?;
println!("{:?}", record);
}
Ok(())
}
運行結果,還真幫生成這些數(shù)據(jù)。
cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.04s
Running `target/debug/rust-demo9`
StringRecord(["Alice", "30", "New York"])
StringRecord(["Bob", "25", "Los Angeles"])
StringRecord(["Charlie", "35", "Chicago"])
StringRecord(["David", "40", "Houston"])
StringRecord(["Eve", "28", "Philadelphia"])
StringRecord(["Frank", "33", "Phoenix"])
StringRecord(["Grace", "22", "San Antonio"])
StringRecord(["Henry", "45", "San Diego"])
StringRecord(["Ivy", "29", "Dallas"])
StringRecord(["Jake", "38", "San Jose"])
%
如果我想只讀取 Age 這列的數(shù)據(jù),直接上 GPT咨詢,都能幫你解決掉,甚至代碼的每一行,都可以讓他幫你解釋清楚,這初學者幫助肯定很大的。
use csv::Reader;
use std::error::Error;
const CSV_PATH: &str = "./large_file.csv";
fn main() -> Result<(), Box<dyn Error>> {
let mut rdr = Reader::from_path(CSV_PATH)?;
for result in rdr.records() {
let record = result?;
println!("{}", record.get(1).unwrap_or_default());
}
Ok(())
}
如果我想獲取第三列數(shù)據(jù),還可以直接在 vscode 里面咨詢GitHub Copilot,覺得沒有問題可以直接點擊 Accept 引用它提供給你的代碼,在基礎修改也是非常方便的,但部分基礎代碼和重復的代碼可以交給 Copilot 自動幫你生成,效率上也提升不少。
運行結果如下:
最后,學習任何一門語言,已經(jīng)減低了很多難度了,甚至你可以把AI當著你產(chǎn)品經(jīng)理,給你提供需求,最后讓 AI 幫你開發(fā)代碼,你其實就是Review,寫不好的地方繼續(xù)讓AI去修改或你見魔改基本能使用了,工作中大部分重復代碼你沒必要自己從頭開始學,而是學會利用工具。