1.การประกาศตัวแปร
การประกาศตัวแปรใน Go ใช้คำว่า var ตามด้วยชื่อและประเภทของตัวแปร
คำอธิบาย: ตัวแปรใน Go จะต้องมีประเภทที่ชัดเจน ซึ่งช่วยให้การจัดการข้อมูลมีประสิทธิภาพ
ตัวอย่าง:
var x int = 10 // ตัวแปร x ประเภท int มีค่าเป็น 10
var name string = "Go" // ตัวแปร name ประเภท string มีค่าเป็น "Go"
2.Formatting
การจัดรูปแบบข้อมูลใน Go ใช้แพ็กเกจ fmt
คำอธิบาย: ฟังก์ชันในแพ็กเกจ fmt ช่วยให้สามารถพิมพ์ข้อมูลในรูปแบบที่ต้องการได้
import "fmt"
fmt.Printf("Hello, %s!", name) // แสดงข้อความ "Hello, Go!"
3.Zero Value
ค่าเริ่มต้นของตัวแปรที่ไม่ได้กำหนดค่า
คำอธิบาย: Go จะให้ค่าที่เป็นค่าเริ่มต้นสำหรับประเภทต่าง ๆ เช่น 0 สำหรับ int และ "" สำหรับ string
ตัวอย่าง:
var a int // ค่าเริ่มต้นคือ 0
var b string // ค่าเริ่มต้นคือ ""
4.เงื่อนไข
การใช้ if และ else เพื่อตรวจสอบเงื่อนไข
คำอธิบาย: การควบคุมการทำงานของโปรแกรมตามเงื่อนไขที่กำหนด
ตัวอย่าง:
if x > 5 {
fmt.Println("x is greater than 5") // ถ้า x มากกว่า 5 จะพิมพ์ข้อความนี้
} else {
fmt.Println("x is less than or equal to 5") // ถ้าไม่ใช่ จะพิมพ์ข้อความนี้
}
5.Switch Case
การใช้ switch เพื่อเปรียบเทียบหลายกรณี
คำอธิบาย: ช่วยให้การตรวจสอบค่าหลาย ๆ ค่าทำได้ง่ายขึ้น
ตัวอย่าง:
switch day {
case "Monday":
fmt.Println("Start of the week")
case "Friday":
fmt.Println("End of the week")
default:
fmt.Println("Midweek")
}
6.Function
การสร้างฟังก์ชันเพื่อทำงานเฉพาะ
คำอธิบาย: ฟังก์ชันช่วยให้โค้ดมีการจัดระเบียบและนำกลับมาใช้ใหม่ได้
ตัวอย่าง:
func add(a int, b int) int {
return a + b // คืนค่าผลรวมของ a และ b
}
7.Array
การเก็บข้อมูลในลำดับที่มีขนาดคงที่
คำอธิบาย: Array สามารถเก็บข้อมูลที่มีประเภทเดียวกันได้
ตัวอย่าง:
var arr [5]int // ประกาศ Array ที่สามารถเก็บค่า int ได้ 5 ตัว
arr[0] = 1 // กำหนดค่าให้กับตำแหน่งที่ 0
8.Loop
การทำซ้ำโดยใช้ for
คำอธิบาย: ใช้สำหรับการทำงานซ้ำตามจำนวนรอบที่กำหนด
ตัวอย่าง:
for i := 0; i < 5; i++ {
fmt.Println(i) // พิมพ์ค่า i ตั้งแต่ 0 ถึง 4
}
9.Slice
การจัดการข้อมูลแบบลำดับที่มีขนาดยืดหยุ่น
คำอธิบาย: Slice เป็นโครงสร้างข้อมูลที่สามารถขยายขนาดได้
ตัวอย่าง:
slice := []int{1, 2, 3} // ประกาศ Slice ที่เก็บค่า int
10.Structure
การสร้างข้อมูลที่มีหลายฟิลด์
คำอธิบาย: Structure ช่วยในการจัดระเบียบข้อมูลที่เกี่ยวข้องกัน
ตัวอย่าง:
type Person struct {
Name string
Age int
}
11.Method
ฟังก์ชันที่ถูกแนบกับโครงสร้าง
คำอธิบาย: Method ช่วยให้สามารถทำงานกับข้อมูลในโครงสร้างได้
ตัวอย่าง:
func (p Person) Greet() {
fmt.Println("Hello, my name is", p.Name) // แสดงข้อความทักทาย
}
12.Pointer
การเก็บที่อยู่ของตัวแปร
คำอธิบาย: Pointer ช่วยในการจัดการหน่วยความจำและส่งข้อมูลโดยไม่ต้องคัดลอก
ตัวอย่าง:
var ptr *int
ptr = &x // ptr เก็บที่อยู่ของ x
13.Interface
การกำหนดพฤติกรรม
คำอธิบาย: Interface ช่วยในการกำหนดว่าฟังก์ชันใดที่ต้องมีในโครงสร้างต่าง ๆ
ตัวอย่าง:
type Shape interface {
Area() float64 // กำหนดฟังก์ชัน Area ที่ต้องมีในโครงสร้างที่ใช้ Interface นี้
}
14.การจัดการ JSON
ใช้ encoding/json package สำหรับการแปลงข้อมูลเป็น JSON
คำอธิบาย: JSON เป็นรูปแบบข้อมูลที่ใช้ในการส่งข้อมูลระหว่างโปรแกรม
ตัวอย่าง:
jsonData, _ := json.Marshal(person) // แปลงโครงสร้าง person เป็น JSON
15.การสร้าง REST API ใน Go
- ติดตั้ง Go ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Go บนเครื่องของคุณแล้ว สามารถดาวน์โหลดได้จาก golang.org
- สร้างโปรเจกต์ใหม่ สร้างโฟลเดอร์ใหม่สำหรับโปรเจกต์ของคุณ:
bash
mkdir go-rest-api
cd go-rest-api
- สร้างไฟล์หลัก สร้างไฟล์ main.go และเปิดไฟล์นั้นในโปรแกรมแก้ไขที่คุณชื่นชอบ
- เขียนโค้ด REST API เพิ่มโค้ดดังต่อไปนี้ใน main.go:
package main
import (
"encoding/json"
"fmt"
"net/http"
)
// Struct สำหรับจัดการข้อมูล
type Person struct {
ID int `json:"id"`
Name string `json:"name"`
}
// สร้างข้อมูลตัวอย่าง
var people = []Person{
{ID: 1, Name: "John Doe"},
{ID: 2, Name: "Jane Doe"},
}
// ฟังก์ชันสำหรับการจัดการคำขอ GET
func getPeople(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(people)
}
// ฟังก์ชันหลัก
func main() {
http.HandleFunc("/people", getPeople) // กำหนดเส้นทางสำหรับคำขอที่ /people
fmt.Println("Server is running on port 8080...")
http.ListenAndServe(":8080", nil) // เริ่มเซิร์ฟเวอร์
}
- อธิบายโค้ด Struct Person: ใช้เพื่อเก็บข้อมูลของบุคคล มีฟิลด์ ID และ Name Slice people: เก็บข้อมูลตัวอย่างของบุคคล getPeople function: ฟังก์ชันนี้จัดการคำขอ GET ที่เส้นทาง /people โดยจะส่งข้อมูลบุคคลในรูปแบบ JSON main function: ตั้งค่าเซิร์ฟเวอร์ให้ฟังที่พอร์ต 8080 และกำหนดเส้นทางสำหรับคำขอ
- ทดสอบ REST API รันโปรแกรม:
bash
go run main.go
เปิดเว็บเบราว์เซอร์หรือใช้เครื่องมือเช่น Postman หรือ cURL เพื่อทดสอบ API:
GET http://localhost:8080/people
คุณควรจะเห็นผลลัพธ์ในรูปแบบ JSON:
[
{"id":1,"name":"John Doe"},
{"id":2,"name":"Jane Doe"}
]
- ขยาย API คุณสามารถเพิ่มฟังก์ชันการทำงานเพิ่มเติม เช่น: POST เพื่อเพิ่มบุคคลใหม่ PUT เพื่อแก้ไขข้อมูลบุคคล DELETE เพื่อลบบุคคล ตัวอย่างการเพิ่มฟังก์ชันการทำงาน
// ฟังก์ชันสำหรับจัดการคำขอ POST
func addPerson(w http.ResponseWriter, r *http.Request) {
var newPerson Person
json.NewDecoder(r.Body).Decode(&newPerson)
people = append(people, newPerson)
w.WriteHeader(http.StatusCreated)
json.NewEncoder(w).Encode(newPerson)
}
// ในฟังก์ชัน main ให้เพิ่มเส้นทางใหม่
http.HandleFunc("/people", getPeople) // GET
http.HandleFunc("/people/add", addPerson) // POST
Top comments (0)