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

Adblock Detected

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