<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rust switch &#8211; KGG Studio</title>
	<atom:link href="https://blog.kggstudio.com/tag/rust-switch/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.kggstudio.com</link>
	<description>개발자 테크 블로그</description>
	<lastBuildDate>Sat, 28 Mar 2026 23:27:57 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.kggstudio.com/wp-content/uploads/2025/05/cropped-K-1-32x32.png</url>
	<title>Rust switch &#8211; KGG Studio</title>
	<link>https://blog.kggstudio.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">244941309</site>	<item>
		<title>Rust(14) &#8211; match</title>
		<link>https://blog.kggstudio.com/rust14-match/</link>
					<comments>https://blog.kggstudio.com/rust14-match/#respond</comments>
		
		<dc:creator><![CDATA[TimTam]]></dc:creator>
		<pubDate>Sat, 28 Mar 2026 23:27:29 +0000</pubDate>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[Rust match]]></category>
		<category><![CDATA[Rust switch]]></category>
		<guid isPermaLink="false">https://blog.kggstudio.com/?p=357</guid>

					<description><![CDATA[다른언어의 switch 문을 대체하는 Rust 문법. 지난시간에 enum에 대해서 배웠는데, match를사용해 어떻게 분류하는지 알아봅니다. Rust는 이렇게 match를 사용할때 enum Coin의 모든 값을 다 cover 해야합니다. 하나라도 빼놓으면 에러가 나는데 컴파일러가 잡아주고, 어떤 값을 빼먹었는지도 친절하게 알려줍니다. Catch-All 패턴과 _ Placeholder enum &#8211; match 사용 시, 모든 케이스에대해 일일히 처리하고싶지 않은경우도 있습니다. 이럴때는 캐치올 패턴이나 _를 ... <a title="Rust(14) &#8211; match" class="read-more" href="https://blog.kggstudio.com/rust14-match/" aria-label="Rust(14) &#8211; match에 대해 더 자세히 알아보세요">더 읽기</a>]]></description>
										<content:encoded><![CDATA[
<p>다른언어의 switch 문을 대체하는 Rust 문법.</p>



<p>지난시간에 enum에 대해서 배웠는데, match를사용해 어떻게 분류하는지 알아봅니다.</p>



<pre class="wp-block-code"><code>enum Coin {
    Penny,
    Nickel,
    Dime,
    Quarter,
}

fn value_in_cents(coin: Coin) -> u8 {
    match coin {
        Coin::Penny => 1,
        Coin::Nickel => 5,
        Coin::Dime => 10,
        Coin::Quarter => 25,
    }
}</code></pre>



<p>Rust는 이렇게 match를 사용할때 enum Coin의 모든 값을 다 cover 해야합니다. 하나라도 빼놓으면 에러가 나는데 컴파일러가 잡아주고, 어떤 값을 빼먹었는지도 친절하게 알려줍니다.</p>



<h3 class="wp-block-heading">Catch-All 패턴과 _ Placeholder</h3>



<p>enum &#8211; match 사용 시, 모든 케이스에대해 일일히 처리하고싶지 않은경우도 있습니다. 이럴때는 캐치올 패턴이나 _를 사용해서 처리할수있는데요. 아래코드를 보며 이해해봅시다.</p>



<pre class="wp-block-code"><code>let dice_roll = 9;
    match dice_roll {
        3 => add_fancy_hat(),
        7 => remove_fancy_hat(),
        other => move_player(other),
    }

    fn add_fancy_hat() {}
    fn remove_fancy_hat() {}
    fn move_player(num_spaces: u8) {}</code></pre>



<p>위 코드에서는 3, 7 인경우 각 기능을 실행하고 그외의 숫자는 move_player 함수를 호출하면서 <strong>동시에 other값을 인수로</strong> 전달하는걸 볼수 있습니다. other은 Catch-All 키워드인데 이떄 이름은 사용자가 원하는대로 쓰면됩니다, other, others도 모두 사용가능하고 사용자가 원하는 이름으로 적으면됩니다 나머지값이라는 의미로 rest라고해도 되고 함수인자에 전달하는 값에 포인트를줘서 value라고해도됩니다.</p>



<p>또 다른 Catch-All 키워드로는 _ 언더스코어가 있는데 이것은 특별합니다. other 처럼 빼놓은 모든 fields를 커버해주지만 값은 사용하지않게됩니다. 아래처럼 그냥 특정함수를 실행할수도 있고, ()만 남겨서 아무것도 하지않을수도 있습니다.</p>



<pre class="wp-block-code"><code>match dice_roll {
    3 => add_fancy_hat(),
    7 => remove_fancy_hat(),
    _ => reroll(),
}

match dice_roll {
    3 => add_fancy_hat(),
    7 => remove_fancy_hat(),
    _ => (),
}

</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kggstudio.com/rust14-match/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">357</post-id>	</item>
	</channel>
</rss>
