<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Methods on 세모난 책</title><link>https://semonan.com/kr/tags/methods/</link><description>Recent content in Methods on 세모난 책</description><generator>Hugo</generator><language>ko-KR</language><lastBuildDate>Thu, 11 Jul 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://semonan.com/kr/tags/methods/rss.xml" rel="self" type="application/rss+xml"/><item><title>struct method</title><link>https://semonan.com/kr/book/programming/rust/struct-method/</link><pubDate>Thu, 11 Jul 2024 00:00:00 +0000</pubDate><guid>https://semonan.com/kr/book/programming/rust/struct-method/</guid><description>&lt;h1 id="struct-method"&gt;struct method&lt;a class="anchor" href="#struct-method"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="method-란"&gt;Method 란?&lt;a class="anchor" href="#method-%eb%9e%80"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Method는 Struct 안에 포함되어 있는 것이 다를 뿐, Function과 같다고 볼 수 있습니다.&lt;br&gt;
Method를 정의 하는 방법을 알아 봅시다.&lt;br&gt;
다음 예제의 &lt;code&gt;struct Person { ~~~ }&lt;/code&gt; 처럼 Person Struct를 정의 했습니다.&lt;br&gt;
&lt;code&gt;impl Person&lt;/code&gt; 에서 &lt;code&gt;impl&lt;/code&gt;은 implementation의 약어입니다.&lt;br&gt;
&lt;code&gt;impl { ~~~ }&lt;/code&gt; 안에 만들어지는 Function이 Method입니다.&lt;br&gt;
&lt;code&gt;fn speak(self) { ~~~ }&lt;/code&gt;처럼 Method를 만들었고, 첫번째 Parameter로 self를 전달 받았습니다.&lt;br&gt;
&lt;code&gt;self&lt;/code&gt;는 자기 자신인 &lt;code&gt;struct Person&lt;/code&gt;을 가르킵니다.&lt;br&gt;
반드시 Method의 첫번째 Parameter로 &lt;code&gt;self&lt;/code&gt;를 받아야 합니다. 그렇지 않으면 Compile error가 발생합니다.&lt;br&gt;
&lt;code&gt;println!(&amp;quot;hi, {}&amp;quot;, self.name);&lt;/code&gt; 은 &lt;code&gt;self.name&lt;/code&gt;을 print하고 있습니다.&lt;br&gt;
여기서 &lt;code&gt;self.name&lt;/code&gt;은 &lt;code&gt;struct Person { name: String, }&lt;/code&gt; 안의 &lt;code&gt;name: String&lt;/code&gt;을 가리키는 것입니다.&lt;br&gt;
&lt;code&gt;let person = Person{ ~~~ };&lt;/code&gt; 처럼 Instance를 생성 후, &lt;code&gt;person.speak()&lt;/code&gt; 처럼 Method를 호출 할 수 있습니다.&lt;/p&gt;</description></item></channel></rss>