ѧϰRustģʽƥÅ䣺»ù´¡Óï·¨ÖÁ¸ß¼¶¼¼ÇɵĽø½×Ö®ÂÃ
¡¡¡¡RustÓïÑÔÒÔÆäÇ¿´óµÄÀàÐÍϵͳºÍÄڴ氲ȫÐÔ¶øÖø³Æ£¬¶øÄ£Ê½Æ¥Åä(Pattern Matching)ÔòÊÇRustÖзdz£ÖØÒªÇÒ¸»ÓбíÏÖÁ¦µÄÌØÐÔÖ®Ò»¡£ËüÔÊÐíÎÒÃǸù¾Ý²»Í¬µÄÌõ¼þÀ´Æ¥ÅäºÍ½âÎöÊý¾Ý£¬Ê¹µÃ´úÂë¸ü¼ÓÇåÎú¡¢Ò×¶ÁºÍ¿Éά»¤¡£±¾ÎĽ«´Ó»ù±¾Óï·¨¿ªÊ¼£¬Öð²½½éÉÜRustÖеÄģʽƥÅ䣬²¢Ì½ÌÖһЩ¸ß¼¶¼¼ÇÉ¡£ ¡¡¡¡### »ù±¾Óï·¨ ¡¡¡¡ÔÚRustÖУ¬Ä£Ê½Æ¥ÅäÖ÷Ҫͨ¹ý`match`±í´ïʽÀ´ÊµÏÖ¡£Æä»ù±¾Óï·¨ÈçÏ£º ¡¡¡¡```rust ¡¡¡¡match expression { ¡¡¡¡pattern1 => expression1, ¡¡¡¡pattern2 => expression2, ¡¡¡¡... ¡¡¡¡_ => expression_n, ¡¡¡¡} ¡¡¡¡``` ¡¡¡¡ÆäÖУ¬`expression`ÊÇÐèÒª½øÐÐÆ¥ÅäµÄ±í´ïʽ£¬`pattern1`¡¢`pattern2`µÈÊÇÆ¥ÅäµÄģʽ£¬`expression1`¡¢`expression2`µÈÊǵ±¶ÔӦģʽƥÅä³É¹¦Ê±Ö´Ðеıí´ïʽ¡£`_`×÷ΪͨÅä·û£¬ÓÃÓÚÆ¥ÅäÈκÎÖµ¡£ ¡¡¡¡ÀýÈ磬ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÀý×Ó£¬ÓÃÓÚÅжÏÒ»¸öÕûÊýÊÇ·ñΪÕýÊý¡¢¸ºÊý»¹ÊÇÁ㣺 ¡¡¡¡```rust ¡¡¡¡fn main() { ¡¡¡¡let num = -5; ¡¡¡¡match num { ¡¡¡¡n if n > 0 => println!("ÕýÊý"), ¡¡¡¡0 => println!("Áã"), ¡¡¡¡_ => println!("¸ºÊý"), ¡¡¡¡} ¡¡¡¡} ¡¡¡¡``` ¡¡¡¡ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃÇʹÓÃÁË`if`ÊØÎÀÀ´Æ¥ÅäÕýÊý£¬`0`Ö±½ÓÆ¥ÅäÁ㣬¶ø`_`ÔòÆ¥ÅäÆäËûËùÓÐÇé¿ö£¬¼´¸ºÊý¡£ ¡¡¡¡### ¸ß¼¶¼¼ÇÉ ¡¡¡¡³ýÁË»ù±¾Óï·¨Í⣬RustµÄģʽƥÅ仹֧³ÖÐí¶à¸ß¼¶¼¼ÇÉ£¬Ê¹Æä¸ü¼ÓÇ¿´óºÍÁé»î¡£ÒÔÏÂÊÇһЩ³£¼ûµÄ¸ß¼¶¼¼ÇÉ£º ¡¡¡¡#### 1. ½á¹¹»¯°ó¶¨ ¡¡¡¡½á¹¹»¯°ó¶¨ÔÊÐíÎÒÃÇÔÚÆ¥Åäʱͬʱ½â¹¹ºÍ°ó¶¨Êý¾Ý¡£ÀýÈ磬¶ÔÓÚÒ»¸öÔª×é`(a, b)`£¬ÎÒÃÇ¿ÉÒÔÖ±½Ó½«Æä½â¹¹Îª`a`ºÍ`b`¡£Õâ¶ÔÓÚ´¦Àí¾ßÓй̶¨½á¹¹µÄÊý¾ÝÀàÐͷdz£ÓÐÓᣠ¡¡¡¡```rust ¡¡¡¡fn main() { ¡¡¡¡let (x, y) = (1, 2); ¡¡¡¡match (x, y) { ¡¡¡¡(a, b) if a == b => println!("ÏàµÈ"), ¡¡¡¡(a, b) => println!("²»ÏàµÈ£¬x = {}, y = {}", a, b), ¡¡¡¡} ¡¡¡¡} ¡¡¡¡``` ¡¡¡¡#### 2. ͨÅä·ûµ¼Èë ¡¡¡¡ÔÚ´óÐÍÏîÄ¿ÖУ¬ÎÒÃÇ¿ÉÄÜÐèÒª´Ó¶à¸öÄ£¿éÖе¼Èëģʽ¡£´Ëʱ£¬¿ÉÒÔʹÓÃͨÅä·ûµ¼ÈëÀ´¼ò»¯´úÂë¡£ ¡¡¡¡```rust ¡¡¡¡use std::{ ¡¡¡¡fs::File, ¡¡¡¡io::{self, Read}, ¡¡¡¡}; ¡¡¡¡fn main() -> io::Result<()> { ¡¡¡¡let mut file = File::open("example.txt")?; ¡¡¡¡let mut contents = String::new(); ¡¡¡¡file.read_to_string(&mut contents)?; ¡¡¡¡match contents.as_str() { ¡¡¡¡"hello" => println!("»¶Ó"), ¡¡¡¡_ => println!("δ֪ÃüÁî"), ¡¡¡¡} ¡¡¡¡Ok(()) ¡¡¡¡} ¡¡¡¡``` ¡¡¡¡ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃÇʹÓÃ`use`Óï¾ä½«¶à¸öÄ£¿éµÄģʽһ´ÎÐÔµ¼Èëµ½µ±Ç°×÷ÓÃÓòÖС£ ¡¡¡¡#### 3. ÊØÎÀºÍÌõ¼þ ¡¡¡¡ÊØÎÀºÍÌõ¼þÔÊÐíÎÒÃÇÔÚÆ¥ÅäʱÌí¼Ó¶îÍâµÄÌõ¼þ¡£ÊØÎÀʹÓÃ`if`¹Ø¼ü×Ö£¬¶øÌõ¼þÔòʹÓÃ`where`×Ӿ䡣 ¡¡¡¡```rust ¡¡¡¡fn main() { ¡¡¡¡let num = Some(42); ¡¡¡¡match num { ¡¡¡¡Some(x) if x > 0 => println!("ÕýÊý"), ¡¡¡¡None | Some(_) => println!("·ÇÕýÊý"), ¡¡¡¡} AI½¨ÒéͼÏñ£¬½ö¹©²Î¿¼ ¡¡¡¡}¡¡¡¡``` ¡¡¡¡ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃÇʹÓÃÁËÊØÎÀÀ´Æ¥Åä´óÓÚ0µÄÕýÊý£¬Í¬Ê±Ê¹ÓÃÁËÌõ¼þÀ´Æ¥Åä`None`ºÍËùÓÐ`Some`Öµ¡£ ¡¡¡¡#### 4. ²»¿É±äºÍ¿É±äģʽ ¡¡¡¡ÔÚRustÖУ¬Ä£Ê½¿ÉÒÔÊDz»¿É±äµÄ(ĬÈÏ)»ò¿É±äµÄ¡£Í¨¹ýÔÚģʽǰÌí¼Ó`mut`¹Ø¼ü×Ö£¬ÎÒÃÇ¿ÉÒÔ´´½¨¿É±äģʽ£¬ÒÔ±ãÔÚÆ¥ÅäʱÐÞ¸ÄÆäÖµ¡£ ¡¡¡¡```rust ¡¡¡¡fn main() { ¡¡¡¡let mut num = 5; ¡¡¡¡match num { ¡¡¡¡mut x if x > 0 => { ¡¡¡¡x -= 1; ¡¡¡¡println!("{}", x); ¡¡¡¡} ¡¡¡¡_ => println!("·ÇÕýÊý"), ¡¡¡¡} ¡¡¡¡println!("{}", num); ¡¡¡¡} ¡¡¡¡``` ¡¡¡¡ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃÇʹÓÃÁ˿ɱäģʽÀ´ÐÞ¸Ä`num`µÄÖµ¡£×¢Ò⣬ÔÚÆ¥Åä½áÊøºó£¬`num`µÄÖµÒ²»á±»Ð޸ġ£ ¡¡¡¡Õ¾³¤¸öÈ˼û½â£¬RustµÄģʽƥÅ书ÄÜÇ¿´óÇÒÁé»î£¬Í¨¹ýÕÆÎÕ»ù±¾Óï·¨ºÍ¸ß¼¶¼¼ÇÉ£¬ÎÒÃÇ¿ÉÒÔ±àд³ö¸ü¼ÓÇåÎú¡¢Ò×¶ÁºÍ¸ßЧµÄ´úÂ롣ϣÍû±¾ÎÄÄܹ»°ïÖúÄã¸üºÃµØÀí½âºÍÓ¦ÓÃRustÖеÄģʽƥÅä¡£ £¨±à¼£ºÌì½òÕ¾³¤Íø£© ¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ! |
- »ªÎªÔÚÊÀ½çÄÜÔ´´ó»á·¢²¼»ùÓÚ5GºÍAIз½°¸
- ÑëÊÓ´ºÍí½ÚÄ¿¾ªÏÖ»ªÎª Mate 30 Pro³É×î´óÓ®¼Ò
- ÑëÂèÅÆÊý×Ö»õ±ÒÉÏÑëÊÓÐÂÎÅ ¾¹ÒÑ×¼±¸ÁËÕâô¾Ã£¿
- Äܹ»³É¹¦´©Ô½ÂÞ²¼²´ ×î´óµÄ¹¦ÀÍÊÇ¡°Ëü¡±
- ÎÒ¹úÍêÉÆ5¸ö¹ú¼ÒÈ˹¤ÖÇÄÜ´´ÐÂÓ¦ÓÃÏȵ¼Çø
- Íâý£ºÈýÐǽ«ÓÚÄêµ×ÍÆ³ö¼¯³É5G»ù´øµÄÊÖ»úоƬ
- ×öÉè¼ÆÐ´³ÌÐò¸ÃÔõôѡ±¾£¿ÕâЩÐÂÆ·ºÜºÃÓÃ
- µÚÎå½ìÎÚÕò·å»áÊ®´óÁÁµãÇÀÏÈ¿´
- ÐÂÔì³µ¡°×îºóµÄ»ú»á¡±£ºÐ¡Ã×ģʽ´òÔìÖйúÌØË¹À
- ¶à¼Ò»¥½ðƽ̨°Ù¶ÈÌù°É¹ØÍ£±³ºó£ºÎÞºÏ×÷¼á¾ö¹Ø¡¢ÓкÏ×÷²»¹Ø£¿
- СÃ×ÓÐÆ·ÉϼܸÖÌúÏÀÖÇÄÜ»úÆ÷ÈË
- 55W³¬¿ìÉÁ³ä+4440mAh´óµç³ØiQOO3³¹µ×´òÆÆµçÁ¿½¹ÂÇ
- ¿Æ¼¼6µã°ë£º÷È×å 16s Pro·¢²¼ NEXлúÉÏÊÖÆØ¹â
- Éú»îÖеÄÊ«ÓëÔ¶·½ ¿á±Èħ·½X»áÒ»Ö±Åã°éÔÚÄãÉí±ß
- °Ù¶È³ÐÈÏÆìÏÂÍøÕ¾°µ²Ø¶ñÒâ´úÂë ϵµÚÈý·½Íâ°üÍŶÓ
- vivoÉÏÏß¡°ÃÜÇнӴ¥Õß²âÁ¿ÒÇ¡±Ö§³Ö¹ú¼ÒÒßÇé·À¿Ø
- ΪºÎÂòµç¶¯³µÒªÑ¡µçĦ£¿Ëã¹ýÕâ±ÊÕËÄã¾Í¶®ÁË
- пîMateBook X ProÓ£·Û½ðÀ´ÁË 515»ªÎªPCʡǮ¹¥ÂÔ
- 2ÔÂ22ÈÕ¾©¶«iPhone±¨¼Û£ºÈ«³¡12ÆÚÃâÏ¢²»¶Ï ÖÁ¸ß¿É
- º£ÐŵçÊÓ·¢²¼¡¶»¥ÁªÍøµçÊӰׯ¤Êé¡·£º¼ÒÍ¥ÈÕ¾ùÔÚÏß
- ¡¾Ê×·¢¡¿Flutter¿ò¼ÜÒýÁìÒÆ¶¯Ó¦Óÿª·¢Ð³±Á÷
- ¡¾Ê×·¢¡¿C++Éî¶ÈÆÊÎö£ºÖ¸ÕëÓëÒýÓõľ«Ëè½âÎö
- ¡¾Ê×·¢¡¿±à³ÌÄÚ´æÐ¹Â©£º¾«×¼Ê¶±ðÓë¸ßЧ½â¾ö
- ¡¾Ê×·¢¡¿Python»úÆ÷ѧϰÈëÃÅ£º¾«Í¨Scikit-l
- ¡¾Ê×·¢¡¿RubyÔª±à³ÌÓëÁìÓòÌØ¶¨ÓïÑÔ(DSL)ʵ¼ù
- ¡¾Ê×·¢¡¿Òƶ¯¿ª·¢¶Ô¾ö£ºSwiftÓëKotlin±È½Ï·Ö
- Ê×·¢¾«½²£ºËã·¨ÓëÊý¾Ý½á¹¹£¬Öý¾Í±à³ÌºËÐľº
- Ê×·¢½âÎö£ºÉîÈë̽Ë÷SQLÓïÑԵĸ߼¶±à³Ì¼¼ÇÉ
- ¡¾Ê×·¢¡¿Python£ºÊý¾Ý¿ÆÑ§ÁìÓòµÄ¸ïй¤¾ß
- PythonÊý¾Ý¿ÆÑ§Êµ¼ù£ºÊý¾Ý´¦Àí¡¢·ÖÎöÓë¿ÉÊÓ