有了GPT+Copilot,學(xué)習(xí) Rust 直接起飛
大家好,我是漁夫。
Rust 前中期學(xué)習(xí)曲線(xiàn)會(huì)更陡峭一些,但是今天咱們有了 AI 輔助,學(xué)任何編程語(yǔ)言,似乎也沒(méi)那么難了,不懂就往 GPT 去問(wèn),至少前期你會(huì)很快解決掉問(wèn)題的。
比如,我想讀一個(gè) CSV 文件,直接上 GPT 去咨詢(xún)。
它連 csv 里面的內(nèi)容都給你生成了,這效率真高啊。
首先,我們來(lái)添加外部包: 使用csv和serde包。這些包可以通過(guò)在你的Cargo.toml文件中添加它們來(lái)引入。
也可以選擇,命令行添加:
cargo add serde --features derivecargo add csv
cargo add serde --features derive
添加后,我們嘗試遍歷這個(gè)文件是否真的存在數(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(())
}
運(yùn)行結(jié)果,還真幫生成這些數(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咨詢(xún),都能幫你解決掉,甚至代碼的每一行,都可以讓他幫你解釋清楚,這初學(xué)者幫助肯定很大的。
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 里面咨詢(xún)GitHub Copilot,覺(jué)得沒(méi)有問(wèn)題可以直接點(diǎn)擊 Accept 引用它提供給你的代碼,在基礎(chǔ)修改也是非常方便的,但部分基礎(chǔ)代碼和重復(fù)的代碼可以交給 Copilot 自動(dòng)幫你生成,效率上也提升不少。
運(yùn)行結(jié)果如下:
最后,學(xué)習(xí)任何一門(mén)語(yǔ)言,已經(jīng)減低了很多難度了,甚至你可以把AI當(dāng)著你產(chǎn)品經(jīng)理,給你提供需求,最后讓 AI 幫你開(kāi)發(fā)代碼,你其實(shí)就是Review,寫(xiě)不好的地方繼續(xù)讓AI去修改或你見(jiàn)魔改基本能使用了,工作中大部分重復(fù)代碼你沒(méi)必要自己從頭開(kāi)始學(xué),而是學(xué)會(huì)利用工具。