วิธีการในโกลัง

วิธีการในGolang  นั้นเหมือนกับฟังก์ชัน แต่มีความแตกต่างที่สำคัญอย่างหนึ่งคือ มี อาร์กิวเมนต์ ตัวรับซึ่งทำให้เข้าถึงคุณสมบัติของตัวรับได้ ตัวรับสามารถเป็นชนิด struct หรือ non-struct ได้ แต่ทั้งสองจะต้องอยู่ในแพ็คเกจเดียวกัน ไม่สามารถสร้างวิธีการสำหรับประเภทที่กำหนดไว้ในแพ็คเกจอื่นได้ รวมถึงประเภทในตัวเช่นintหรือstringหากเป็นเช่นนั้น คอมไพเลอร์จะรายงานข้อผิดพลาด

วิธีการในโกลัง

ตัวอย่างเช่น:

package main

import "fmt"

// Định nghĩa một struct
type person struct {
    name string
    age  int
}

// Định nghĩa một phương thức với struct receiver
func (p person) display() {
    fmt.Println("Name:", p.name)
    fmt.Println("Age:", p.age)
}

func main() {
    // Tạo một phiên bản của struct
    a := person{name: "a", age: 25}
    
    // Gọi phương thức
    a.display()
}

ผลลัพธ์:

Name: a
Age: 25

ไวยากรณ์

func(receiver_name Type)  method_name(parameter_list) (return_type) { 
// Code
}

ผู้รับ :สามารถเข้าถึงได้ด้วยวิธีนี้

วิธีการที่มีตัวรับประเภทโครงสร้าง

ใน Go คุณสามารถกำหนดวิธีการที่ตัวรับเป็นประเภท struct ได้ ผู้รับสามารถเข้าถึงได้ภายในวิธีการ ตัวอย่างก่อนหน้านี้แสดงให้เห็นแนวทางนี้โดยใช้ตัวรับประเภท struct

วิธีการที่มีตัวรับไม่ใช่ประเภทโครงสร้าง

Go ยังอนุญาตให้มีวิธีการที่มีตัวรับที่ไม่ใช่โครงสร้างได้ ตราบใดที่ประเภทตัวรับและคำจำกัดความของวิธีการอยู่ในแพ็คเกจเดียวกัน คุณไม่สามารถกำหนดวิธีการที่มีประเภทตัวรับจากแพ็คเกจอื่นได้ (เช่น int, สตริง)

ตัวอย่างเช่น:

package main

import "fmt"

// Tạo một kiểu tùy biến dựa trên int
type number int

// Định nghĩa một phương thức với receiver không phải struct
func (n number) square() number {
    return n * n
}

func main() {
    a := number(4)
    b := a.square()

    fmt.Println("Square of", a, "is", b)
}

ผลลัพธ์:

Square of 4 is 16

วิธีการที่มีตัวชี้ตัวรับ

ใน Go วิธีการสามารถมีตัวรับตัวชี้ได้ วิธีนี้จะช่วยให้การเปลี่ยนแปลงที่ทำในวิธีการสะท้อนไปยังตัวเรียก ซึ่งไม่สามารถทำได้กับตัวรับค่า

รูปแบบประโยค :

func (p *Type) method_name(...Type) Type {    // Code}

ตัวอย่างเช่น:

package main

import "fmt"

// Defining a struct
type person struct {
    name string
}

// Phương thức với receiver pointer để chỉnh sửa dữ liệu
func (p *person) changeName(newName string) {
    p.name = newName
}

func main() {
    a := person{name: "a"}
    
    fmt.Println("Before:", a.name)
    
    // Gọi phương thức này để thay đổi tên
    a.changeName("b")
    
    fmt.Println("After:", a.name)
}

ผลลัพธ์:

Before: a
After: b

วิธีการนี้ยอมรับทั้งตัวชี้และค่า

ต่างจากฟังก์ชัน วิธีการของ Go สามารถรับทั้งตัวรับค่าและตัวชี้ได้ คุณสามารถส่งตัวชี้หรือค่าได้ และวิธีการจะจัดการตามนั้น

ตัวอย่างเช่น:

package main
import "fmt"

type person struct {
    name string
}
// Phương thức với receiver pointer
func (p *person) updateName(newName string) {
    p.name = newName
}

// Phương thức với receiver value 
func (p person) showName() {
    fmt.Println("Name:", p.name)
}

func main() {
    a := person{name: "a"}
    
    // Gọi phương thức con trỏ cùng giá trị
    a.updateName("b")
    fmt.Println("After pointer method:", a.name)
    
    // Gọi phương thức giá trị với con trỏ
    (&a).showName()
}

ผลลัพธ์:

After pointer method: b
Name: b

ความแตกต่างระหว่างวิธีการและฟังก์ชั่น

วิธี ขากรรไกร
มีตัวรับสัญญาณ ไม่มีตัวรับสัญญาณ
สามารถกำหนดวิธีการที่มีชื่อเดียวกัน แต่มีประเภทที่แตกต่างกันได้ ไม่อนุญาตให้ใช้ฟังก์ชั่นที่มีชื่อเดียวกันแต่มีประเภทต่างกัน
ไม่สามารถใช้เป็นคำคุณศัพท์ขั้นยอดได้ สามารถใช้เป็นวัตถุเหนือกว่าได้
Sign up and earn $1000 a day ⋙

Leave a Comment

วิธีรับ Discord Nitro ฟรี 1 เดือนด้วย Opera GX

วิธีรับ Discord Nitro ฟรี 1 เดือนด้วย Opera GX

Opera GX เว็บเบราว์เซอร์ที่เน้นเรื่องการเล่นเกม ได้จับมือเป็นพันธมิตรที่น่าสนใจกับ Discord โดยเสนอให้ผู้ใช้ทดลองใช้ Discord Nitro ฟรีเป็นเวลา 1 เดือน

วิธีบันทึกหน้าจอคอมพิวเตอร์ Windows 10 อย่างรวดเร็ว

วิธีบันทึกหน้าจอคอมพิวเตอร์ Windows 10 อย่างรวดเร็ว

ปัจจุบันมีซอฟต์แวร์บันทึกหน้าจอคอมพิวเตอร์หลายตัวที่รองรับ Win 10 ช่วยให้คุณบันทึกหน้าจอคอมพิวเตอร์ได้อย่างง่ายดาย โดยเฉพาะสำหรับนักเล่นเกม

วิธีปิดความคิดเห็นเมื่อสตรีมสดบน Facebook

วิธีปิดความคิดเห็นเมื่อสตรีมสดบน Facebook

เมื่อรับชมถ่ายทอดสดบน Facebook ความคิดเห็นจะแสดงบนหน้าจอวิดีโอออนไลน์โดยอัตโนมัติ จากนั้นผู้ชมก็จะทราบความเห็นของคนอื่นๆ

15 สิ่งที่คุณสามารถทำได้ด้วย ChatGPT

15 สิ่งที่คุณสามารถทำได้ด้วย ChatGPT

นับตั้งแต่เปิดตัวในเดือนพฤศจิกายน 2022 ChatGPT ได้รับความสนใจอย่างมากเนื่องจากมีการใช้งานที่หลากหลาย เพื่อช่วยให้คุณได้รับประโยชน์สูงสุดจากเครื่องมือนี้ เรามี 15 วิธีที่คุณสามารถใช้ ChatGPT ได้

เคล็ดลับในการค้นหาเที่ยวบินราคาถูกบนสายการบิน Gemini

เคล็ดลับในการค้นหาเที่ยวบินราคาถูกบนสายการบิน Gemini

วิดเจ็ตบน Gemini ช่วยให้ผู้ช่วย AI เข้าถึงผู้ใช้ได้ในด้านต่างๆ มากขึ้น เช่น การค้นหาตั๋วเครื่องบินราคาถูกผ่านวิดเจ็ต Google Flights

พารามิเตอร์การส่งคืนที่มีชื่อใน Golang

พารามิเตอร์การส่งคืนที่มีชื่อใน Golang

ใน Golang พารามิเตอร์การส่งคืนที่มีชื่อมักเรียกว่าพารามิเตอร์ที่มีชื่อ Golang อนุญาตให้ตั้งชื่อพารามิเตอร์ที่ส่งกลับหรือผลลัพธ์ของฟังก์ชันในลายเซ็นหรือคำจำกัดความของฟังก์ชัน

คำแนะนำสำหรับการตั้งค่าวอลเปเปอร์แชทบน WhatsApp

คำแนะนำสำหรับการตั้งค่าวอลเปเปอร์แชทบน WhatsApp

WhatsApp มีฟีเจอร์เปลี่ยนวอลล์เปเปอร์แชท ช่วยให้ผู้ใช้สามารถตั้งค่าธีมแชทบน WhatsApp ได้ ผู้ใช้สามารถเลือกพื้นหลังสำหรับการแชทได้ถึง 30 แบบ หรือใช้ภาพส่วนตัวเป็นพื้นหลังการแชทบน WhatsApp ก็ได้

ไฟล์ FLV คืออะไร? วิธีการเปิดไฟล์ FLV บนคอมพิวเตอร์?

ไฟล์ FLV คืออะไร? วิธีการเปิดไฟล์ FLV บนคอมพิวเตอร์?

คุณมักจะดาวน์โหลดวิดีโอจากอินเทอร์เน็ตลงในคอมพิวเตอร์ของคุณเพื่อดูแบบออฟไลน์และมักจะเห็นไฟล์ FLV คุณกำลังดิ้นรนเพื่อหาทางเปิดมันใช่ไหม? วันนี้เราจะมาแจ้งข้อมูลเกี่ยวกับไฟล์วิดีโอ FLV ให้กับคุณในบทความด้านล่างนี้

วิธีดูข่าวที่เก็บถาวรบน Facebook โทรศัพท์ คอมพิวเตอร์

วิธีดูข่าวที่เก็บถาวรบน Facebook โทรศัพท์ คอมพิวเตอร์

หากต้องการตรวจสอบข่าวที่โพสต์บน Facebook คุณจะต้องเปิดใช้งานไฟล์ข่าวที่เก็บถาวรบน Facebook ข้อความ Facebook ทั้งหมดหลังจากเปิดโหมดเก็บถาวรแล้ว จะถูกบันทึกไว้ในไฟล์เก็บถาวรเพื่อให้คุณตรวจสอบได้ทุกเมื่อที่ต้องการ

โค้ด MU Luc Dia VNG ล่าสุดและวิธีแลกโค้ด

โค้ด MU Luc Dia VNG ล่าสุดและวิธีแลกโค้ด

คุณสามารถแลกเปลี่ยนรหัสเกม MU Luc Dia VNG เป็น Zen และสกุลเงินอื่น ๆ ได้

10 แอปพลิเคชั่นที่คนรักหนังสือไม่ควรพลาด

10 แอปพลิเคชั่นที่คนรักหนังสือไม่ควรพลาด

เพียงเพราะคุณไม่มีหนังสือติดตัวไม่ได้หมายความว่าคุณต้องหยุดอ่าน สิ่งที่คุณต้องการคือโทรศัพท์ของคุณเพื่อลองใช้แอปโซเชียลมีเดียที่อุทิศให้กับคนรักหนังสือและค้นหาหนังสือเล่มต่อไปที่คุณอยากอ่าน

เรียนรู้เกี่ยวกับ Spotify Connect: ฟีเจอร์ Spotify ที่บังคับให้ผู้ใช้ออกจาก YouTube Music

เรียนรู้เกี่ยวกับ Spotify Connect: ฟีเจอร์ Spotify ที่บังคับให้ผู้ใช้ออกจาก YouTube Music

ความสามารถในการควบคุมเพลงที่เล่นบนอุปกรณ์หนึ่งจากอีกอุปกรณ์หนึ่งเป็นคุณสมบัติที่ถูกมองข้าม YouTube Music ไม่มีฟีเจอร์นี้ และนั่นทำให้ผู้คนต้องหันมาใช้ Spotify

วิธีทำให้ก้อนหิมะระเบิดใน Minecraft Bedrock & Java Editon

วิธีทำให้ก้อนหิมะระเบิดใน Minecraft Bedrock & Java Editon

คำสั่ง Minecraft ช่วยให้ผู้เล่นสร้างเอฟเฟกต์ที่น่าสนใจมากมายได้ และตัวเลือกที่น่าสนใจอย่างหนึ่งก็คือการทำให้ลูกบอลหิมะระเบิด นี่คือวิธีการทำลูกบอลหิมะระเบิดใน Minecraft

คอมพิวเตอร์ของคุณมี NPU หรือไม่? วิธีการตรวจสอบมีดังนี้

คอมพิวเตอร์ของคุณมี NPU หรือไม่? วิธีการตรวจสอบมีดังนี้

ใน Windows 11 คุณสามารถตรวจสอบได้อย่างรวดเร็วว่าคอมพิวเตอร์ของคุณมี NPU (Neural Processing Unit) หรือไม่ ด้วยวิธีง่ายๆ 3 วิธี

โหมดไฮเบอร์เนตไม่ดีสำหรับพีซีหรือไม่?

โหมดไฮเบอร์เนตไม่ดีสำหรับพีซีหรือไม่?

โหมดไฮเบอร์เนตถือกำเนิดขึ้นจากความต้องการที่จะเปิดคอมพิวเตอร์ไว้ตลอด 24 ชั่วโมงทุกวัน โดยไม่ต้องการให้แบตเตอรี่หมด หรือเพื่อให้แน่ใจว่าระบบจะไม่ได้รับผลกระทบจากไฟฟ้าดับ ซึ่งแตกต่างจากกรณีของโหมดสลีป