fp_Rust - kzono/study_rust GitHub Wiki
chatGPT ćøć®č³ŖåćØēµęć
ćQćä¾å¤ć使ććŖććØć©ć¼å¦ēćØćÆļ¼ć代ę°ēćć¼ćæåćć©ć®ććć«ä½æćććčŖ¬ęćć¦ćć ććć
ćAćä¾å¤ć使ććŖććØć©ć¼å¦ēćØćÆćććć°ć©ć ć®å®č”äøć«äŗęććŖććØć©ć¼ćēŗēććå “åćä¾å¤ćć¹ćć¼ćć¦ććć°ć©ć ć®å¶å¾”ć転éćć代ććć«ćé¢ę°ćć”ć½ćććŖć©ć®ę»ćå¤ć«ćØć©ć¼ę å ±ćå«ćć¦å¦ēćč”ćę¹ę³ć§ćć
代ę°ēćć¼ćæåćÆćé¢ę°ćć”ć½ććć®ę»ćå¤ć«ćØć©ć¼ę å ±ćå«ććććć«ä½æēØćććććØćććć¾ćć代ę°ēćć¼ćæåćÆćē°ćŖć種é”ć®å¤ćęć¤åęåć®ćććŖćć®ć§ććććØć©ć¼ę å ±ć蔨ćććć®åćå®ē¾©ććććØćć§ćć¾ćć
ä¾ćć°ćꬔć®ćććŖćØć©ć¼ę å ±ć蔨ć代ę°ēćć¼ćæåćå®ē¾©ććććØćć§ćć¾ćć
enum Result<T, E> {
Ok(T),
Err(E),
}
ćć®ä»£ę°ēćć¼ćæåćÆćę»ćå¤ćØćć¦ę£åøøēµäŗęć«ćÆ Ok ć«å¤ćå«ććē°åøøēµäŗęć«ćÆ Err ć«ćØć©ć¼ę å ±ćå«ćć¦čæćććØćć§ćć¾ćć
ćć®ćććŖä»£ę°ēćć¼ćæåć使ēØććććØć§ćä¾å¤ć使ććŖććØć©ć¼å¦ēćåÆč½ć«ćŖćć¾ćććć ćć代ę°ēćć¼ćæåć使ēØććå “åćÆćå¼ć³åŗćå“ć§åæ ććØć©ć¼ę å ±ććć§ććÆććåæ č¦ćććć¾ćć
ćQć代ę°ēćć¼ćæåćØććæć¼ć³ćććć使ć£ććØć©ć¼å¦ēć«ć¤ćć¦čŖ¬ęćć¦ćć ććć
ćAć代ę°ēćć¼ćæåćØććæć¼ć³ćććć使ć£ććØć©ć¼å¦ēćÆćé¢ę°ćć”ć½ććć®ę»ćå¤ć«ćØć©ć¼ę å ±ćå«ćć¦å¦ēćč”ćę¹ę³ć§ćććć®ę¹ę³ćÆćä¾å¤ć使ććŖććØć©ć¼å¦ēć®äøēØ®ć§ćććå®å Øę§ćäæ”é ¼ę§ć®é«ćććć°ć©ć ćå®ē¾ććććć«ęēØć§ćć
代ę°ēćć¼ćæåćÆćē°ćŖć種é”ć®å¤ćęć¤åęåć®ćććŖćć®ć§ććććØć©ć¼ę å ±ć蔨ćććć®åćå®ē¾©ććććØćć§ćć¾ććććØćć°ćꬔć®ćććŖä»£ę°ēćć¼ćæåćå®ē¾©ććććØćć§ćć¾ćć
enum Result<T, E> {
Ok(T),
Err(E),
}
ćć®ä»£ę°ēćć¼ćæåćÆćę»ćå¤ćØćć¦ę£åøøēµäŗęć«ćÆ Ok ć«å¤ćå«ććē°åøøēµäŗęć«ćÆ Err ć«ćØć©ć¼ę å ±ćå«ćć¦čæćććØćć§ćć¾ćć
ććæć¼ć³ćććć使ēØććććØć§ćé¢ę°ćć”ć½ććć®ę»ćå¤ć«å«ć¾ćććØć©ć¼ę å ±ćē°”åć«å¦ēććććØćć§ćć¾ććććØćć°ćꬔć®ćććŖé¢ę°ćčćć¦ćæć¾ćććć
fn divide(a: i32, b: i32) -> Result<i32, &'static str> {
if b == 0 {
return Err("division by zero");
}
Ok(a / b)
}
ćć®é¢ę°ćÆćå¼ę° b ć 0 ć®å “åć«ćÆ Err ć«ćØć©ć¼ę å ±ćå«ćć¦ē°åøøēµäŗćććć仄å¤ć®å “åć«ćÆ Ok ć«čØē®ēµęćå«ćć¦ę£åøøēµäŗćć¾ćććć®é¢ę°ćå¼ć³åŗćå “åć«ćÆćććæć¼ć³ćććć使ēØćć¦ćØć©ć¼ę å ±ćå¦ēććććØćć§ćć¾ćć
let result = divide(10, 0);
match result {
Ok(value) => println!("result: {}", value),
Err(error) => println!("error: {}", error),
}
ćć®ä¾ć§ćÆćé¢ę° divide ćå¼ć³åŗćć¦ćØć©ć¼ę å ±ćå«ćę»ćå¤ćåå¾ććććæć¼ć³ćććć使ēØćć¦ę£åøøēµäŗęćØē°åøøēµäŗęć®å¦ēćåå²ćć¦ćć¾ćć
- é¢ę°ć®å¼ę°ćØćć¦é¢ę°ćåćć
- é¢ę°ć®ę»ćå¤ćØćć¦é¢ę°ćčæćć