<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kritawit.Ya</title>
    <description>The latest articles on DEV Community by Kritawit.Ya (@idevalot).</description>
    <link>https://dev.to/idevalot</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1129753%2F21aefa42-97ea-4914-8d19-894feb407788.jpeg</url>
      <title>DEV Community: Kritawit.Ya</title>
      <link>https://dev.to/idevalot</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/idevalot"/>
    <language>en</language>
    <item>
      <title>Go: The Fundamentals - Pointer</title>
      <dc:creator>Kritawit.Ya</dc:creator>
      <pubDate>Thu, 22 Feb 2024 14:23:18 +0000</pubDate>
      <link>https://dev.to/idevalot/go-the-fundamentals-pointer-57i8</link>
      <guid>https://dev.to/idevalot/go-the-fundamentals-pointer-57i8</guid>
      <description>&lt;p&gt;Pointer เป็น Concept พื้นฐานในงาน Computer Science และมีอยู่ในหลาย Programming Language, ซึ่งใน Go มีคุณสมบัตินี้อยู่. Pointer เป็นตัวแปรที่จัดเก็บไว้บน Memory address ของตัวแปรทั้งหมด. ซึ่งจะช่วยให้เราจัดการกับ Memory ได้โดยตรงหรือทำการอ้างอิงถึงตัวแปรนั้นๆได้. เราจะสังเกตุได้ว่าตัวแปรไหนเป็น pointer โดยตัวแปรนั้นจะมีสัญลักษณ์ * ประกอบอยู่ด้วยในตอนประกาศตัวแปรหรือตอนใช้งาน&lt;/p&gt;

&lt;p&gt;ตัวอย่าง:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// n := 2
// double(&amp;amp;n)
// n == 4
func double(n *int) {
    *n = *n + 2
}

// name := "Bob"
// appendGreeting(&amp;amp;name)
// name == "Hi, Bob"
func appendGreeting(s *string) {
    *s = "Hi, " + *s
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ต่อมาจะขอยกตัวอย่างการใช้งาน pointer จาก func ตัวอย่างด้านบน&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import "fmt"

func main() {
      n := 2
      double(&amp;amp;n)
      fmt.Println(n)
      // 4
      name := "Bob"
      appendGreeting(&amp;amp;name)
      fmt.Println(name) 
      // Hi, Bob
}

func double(n *int) {
    *n = *n + 2
}

func appendGreeting(s *string) {
    *s = "Hi, " + *s
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;อธิบายเพิ่มเติม จาก code ด้านบนจะประกอบไปด้วย 3 function&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;func main คือ ตัวที่ทำการ run และ implement function ต่างๆจากตัวอย่างด้านมาใช้งาน โดยมีการ สร้างตัวแปรพร้อม assign value และส่งไปเป็น Parameter ของ function ตัวอย่าง&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;func double(n *int) จะทำหน้าที่เปลี่ยนแปลงค่า pointer ที่ส่งมากับ parameter n *int โดยมีการคำนวณและ assign. ค่ากลับไปให้ตัวแปร pointer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;func appendGreeting(s *string) จะทำงานเหมือนข้อ 2 ที่กล่าวมาแตกต่างตรงที่เป็นตัวแปร type string &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Developer ท่านไหนกำลังสนใจ Go สามารถนำไปศึกษาเพิ่มเติมต่อได้ครับ หวังจะเป็นประโยชน์กับหลายๆคนนะครับ&lt;/p&gt;

&lt;p&gt;Source Code : &lt;a href="https://github.com/header-dev/go-fundam.git"&gt;https://github.com/header-dev/go-fundam.git&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>backend</category>
      <category>backenddevelopment</category>
      <category>fundamenta</category>
    </item>
  </channel>
</rss>
