Go Lang

เขียนโปรแกรมภาษา Go กับ Function, Scope, Array

บทเรียนการเขียนโปรแกรมด้วยภาษา Go กับคำสั่งเบื้องต้นการสร้าง Function Scope และการใช้งาน Array สำหรับนักพัฒนาเบื้องต้น

ศึกษาบทเรียนก่อนหน้าได้ที่:

บทเรียนนี้เราจะทำความรู้จักกับ Function Scope และ Array ครับ

การเรียกใช้ฟังก์ชัน Function

รูปแบบการเรียกใช้ Function ในภาษา Go นั้นจะมีความคล้ายกับภาษา Python และ C เขียนได้ดังนี้:

func function_name( [parameter list] ) [return_types]
{
   body of the function
}
  • function_name ก็คือชื่อฟังก์ชันที่เราตั้งขึ้นมา ยอดฮิตคือ Min(), Max() หรือ Len() เป็นต้น
  • parameter list ทั้งสองแยกออกมาคือ parameter เป็นตัวแปร ส่วน list ก็คือประเภทของตัวแปร
  • return_types คือสิ่งที่ฟังก์ชันจะทำการส่งค่ากลับนั่นเองครับ

มาดูตัวอย่างการประกาศดีกว่า:

func MyMaxValue(val1, val2 int) int {
   result int

   if (val1 > val2) {
      result = val1
   } else {
      result = val2
   }
   return result 
}

อธิบายก็คือเราจะสร้างฟังก์ชันชื่อว่า MyMaxValue ขึ้นมาโดยมีการรับค่าตัวแปร int หรือเลขจำนวนเต็ม 2 ค่ามาเปรียบเทียบว่าใครมากกว่ากัน โดย เก็บลงในตัวแปร val1 และ val2 หลังจากนั้นส่งค่ากลับไป return เป็น int ผ่านตัวแปร result นั่นเอง ลองเขียนโปรแกรมดูจะเป็นดังนี้:

package main

import "fmt"

func main() {

   var num1 int = 87
   var num2 int = 54
   var answer int

   answer = MyMaxValue(num1, num2)

   fmt.Printf( "Maximum value is: %d\n", answer )
}

func MyMaxValue(val1, val2 int) int {
   var result int

   if (val1 > val2) {
      result = val1
   } else {
      result = val2
   }
   return result 
}

เทียบค่า  87 กับ 54 เลขไหนมากกว่ากัน ทดสอบโดยการ Run คำสั่ง:

$ go run tutorial4.go

ผลลัพธ์คือ


การใช้งาน Scope Rules

แบบแรกคือ Local Variables ตัวแปรที่เป็น Local ภายในเราสามารถประกาศและเรียกใช้ดังนี้:

package main
import "fmt"

func main() {

   var a, b, c int 
   a = 12
   b = 6
   c = a + b

   fmt.Printf ("value of a = %d, b = %d and c = %d\n", a, b, c)
}

ตัวแปรคือ a,b,c ที่ประกาศใช้งานภายใต้ฟังก์ชัน main()

ต่อมาเราจะดูการประกาศ Global Variable กันคือการประกาศตัวแปร Global ใช้ได้ทุกฟังก์ชัน ไม่ใช่แค่เฉพาะ main() เพียงฟังก์ชันเดียว:

package main
import "fmt"

var g,answer int

func main() {
   g = 15

   var a, b, c int 
   a = 12
   b = 6
   c = a + b
   answer = MyMaxValue(c, g)

   fmt.Printf ("value of a = %d, b = %d and c = %d\n", a, b, c)
   fmt.Printf( "value of g = %d\n", g )
   fmt.Printf( "Maximum value is: %d\n", answer )
}
func MyMaxValue(val1, val2 int) int {
   var result int

   if (val1 > val2) {
      result = val1
   } else {
      result = val2
   }
   return result 
}

เราประกาศ Global Variable คือ

var g,answer int

แล้วเอาตัวอย่าง การเรียกฟังก์ชันมาใช้งานผลลัพธ์คือ


Array ในภาษา Go

Array คือ ประเภทของข้อมูลที่สามารถเก็บข้อมูลประเภทเดียวกันแบบเป็นลำดับได้ โดยข้อมูลนั้นจะอยู่ในตัวแปรตัวเดียวกันที่เรียกว่า ตัวแปร Array เรียกอีกชื่อหนึ่งว่า ตัวแปรชุด เป็นการจองพื้นที่ในหน่วยความ จำให้กับตัวแปร เพื่อให้ตัวแปรนั้นสามารถรับข้อมูลหรือเก็บข้อมูลได้มากกว่า 1 ค่า โดยค่าแต่ละค่านั้น จะถูกเก็บลงยังพื้นที่ของหน่วยความจำที่แตกต่างกัน พื้นที่ในหน่วยความจำจะใช้หมายเลขลำดับเป็นตัว จำแนกความแตกต่างของค่าตัวแปรแต่ละพื้นที่ด้วยการระบุหมายเลขลำดับที่เรียกว่า ดัชนี (Index) กำกับตามหลังชื่อตัวแปร

โดยใช้หมายเลขลำดับตั้งแต่ 0, 1, 2, … เป็นต้นไป

มาดูการทำงานของ Array กันดีกว่า:

var variable_name [SIZE] variable_type

ในภาษา Go นั้น การประกาศ array จะใช้ Pattern ดังนี้:

  • variable_name คือชื่อตัวแปร Array
  • [Size] คือขนาดของข้อมูลในตัวแปร Array
  • variable_type คือประเภทตัวแปรซึ่งตัวแปรชุดทั้งหมดใน array ต้องเป็นประเภทเดียวกัน

ตัวอย่าง:

var n [10]int

ตัวแปร n เป็น int มีขนาด 10 ชุดข้อมูล การเขียนโปรแกรมในภาษา Go คือ:

package main

import "fmt"

func main() {
   var n [10]int 
   var i,j int       
   for i = 0; i < 10; i++ {
      n[i] = i + 100 
   }

   for j = 0; j < 10; j++ {
      fmt.Printf("n[%d] = %d\n", j, n[j] )
   }
}

ทดสอบ:

เป็นว่าภาษา Go เรียนรู้ไม่ยากนะครับลองไปฝึกฝนกันดู

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button
Game & Mobile Development AR VR XR
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน