Métodos em Golang

Métodos em Golang  são como funções, mas com uma grande diferença: eles têm um argumento receiver , que permite acesso às propriedades do receiver . O receptor pode ser do tipo struct ou não struct, mas ambos devem estar no mesmo pacote. Não é possível criar métodos para tipos definidos em outros pacotes, incluindo tipos internos como int ou string ; Caso contrário, o compilador reportará um erro.

Métodos em Golang

Por exemplo:

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()
}

Resultado:

Name: a
Age: 25

Sintaxe

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

Receptor: Pode ser acessado usando este método.

Método com Receptor do tipo struct

Em Go, você pode definir um método em que o receptor é do tipo struct. O receptor é acessível dentro do método. O exemplo anterior ilustra essa abordagem com um Receptor do tipo struct.

Método com Receptor não é do tipo struct

Go também permite que métodos tenham receptores não-struct, desde que o tipo de receptor e a definição do método estejam no mesmo pacote. Você não pode definir um método com um tipo de receptor de outro pacote (por exemplo, int, string).

Por exemplo:

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)
}

Resultado:

Square of 4 is 16

Método com ponteiro receptor

Em Go, os métodos podem ter receptores de ponteiros. Isso permite que as alterações feitas no método sejam refletidas no chamador, o que não é possível com receptores de valor.

Sintaxe:

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

Por exemplo:

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)
}

Resultado:

Before: a
After: b

O método aceita ponteiro e valor

Ao contrário das funções, os métodos Go podem aceitar receptores de valor e ponteiros. Você pode passar ponteiros ou valores e o método tratará adequadamente.

Por exemplo:

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()
}

Resultado:

After pointer method: b
Name: b

Diferença entre método e função

Método Mandíbula
Contém um receptor Não contém receptor
É possível definir métodos com o mesmo nome, mas tipos diferentes. Funções com o mesmo nome, mas tipos diferentes, não são permitidas.
Não pode ser usado como superlativo Podem ser usados ​​como objetos superordenados
Sign up and earn $1000 a day ⋙

Leave a Comment

5 maneiras de corrigir o erro de não pareamento do Apple Watch

5 maneiras de corrigir o erro de não pareamento do Apple Watch

Embora o Apple Watch seja uma ótima maneira de monitorar sua atividade física diária, enviar mensagens e muito mais, o que acontece se o seu Apple Watch não emparelhar?

As 6 empresas mais antigas do mundo ainda em operação, a número 1 está em operação há 1.400 anos

As 6 empresas mais antigas do mundo ainda em operação, a número 1 está em operação há 1.400 anos

Qual é a empresa mais antiga do mundo? Em que ano foi fundada a empresa mais antiga do mundo? Vamos descobrir juntos!

Como revisar notificações excluídas no Samsung

Como revisar notificações excluídas no Samsung

Na nova versão One UI 3.0 da Samsung, os usuários podem usar muitos outros recursos interessantes e atraentes, como revisar notificações excluídas na barra de status da Samsung.

Desejos para o Dia Internacional do Homem, desejos para o dia 19 de novembro para namorado, amante, marido doce e romântico

Desejos para o Dia Internacional do Homem, desejos para o dia 19 de novembro para namorado, amante, marido doce e romântico

Quais são os melhores e mais curtos desejos de 19 de novembro para seu amor? Se você está sem ideias, este artigo vai sugerir desejos significativos para 19 de novembro.

Como usar um suéter com estilo e conforto

Como usar um suéter com estilo e conforto

Os suéteres básicos são uma parte indispensável de todos os nossos guarda-roupas de outono e inverno. Veja como misturar e combinar suéteres de uma forma simples, mas elegante.

A maneira mais fácil de transformar inimigos em amigos

A maneira mais fácil de transformar inimigos em amigos

Ter inimigos é sempre uma situação desagradável. Felizmente, você pode transformar seus inimigos em amigos. Aqui estão algumas maneiras simples de consertar um relacionamento que estão disponíveis para todos.

Quantas pessoas podem usar uma conta Netflix ao mesmo tempo?

Quantas pessoas podem usar uma conta Netflix ao mesmo tempo?

Como a Netflix é facilmente acessível em todos os dispositivos, incluindo celulares, tablets, consoles de jogos e dispositivos de streaming, você deve estar se perguntando quantas pessoas podem assistir à Netflix ao mesmo tempo na mesma conta.

Maneiras de centralizar células em uma tabela no Word

Maneiras de centralizar células em uma tabela no Word

Centralizar células no Word ao trabalhar com tabelas é uma operação que precisa ser realizada para reformatar o texto em cada célula de acordo com as normas, bem como criar uma tabela do Word com um layout mais bonito e fácil de visualizar.

A Samsung faz parceria com a OpenAI para desenvolver a AI TV, prometendo muitos recursos interessantes

A Samsung faz parceria com a OpenAI para desenvolver a AI TV, prometendo muitos recursos interessantes

A Samsung Electronics está supostamente colaborando com a OpenAI em um ambicioso projeto conjunto para desenvolver TVs com IA que incorporem tecnologias de inteligência artificial líderes do setor.

Atualização do Minecraft 1.21 tem data de lançamento oficial

Atualização do Minecraft 1.21 tem data de lançamento oficial

Depois de muitos snapshots, adições e alterações, a atualização está completa e pronta para lançamento. A data oficial de lançamento do Minecraft 1.21 acaba de ser revelada!

Delicie-se com a performance do robô chinês dançando habilmente

Delicie-se com a performance do robô chinês dançando habilmente

Em uma impressionante demonstração de criatividade, 16 robôs humanoides da Unitree, empresa líder em robótica da China, ganharam destaque na Gala do Festival da Primavera anual da CCTV.

Por que roupas secas naturalmente e roupas secas na máquina são diferentes?

Por que roupas secas naturalmente e roupas secas na máquina são diferentes?

Por que as roupas e toalhas secas à máquina são macias e suaves, mas quando penduradas para secar geralmente ficam ásperas ou ásperas?

Por que a NASA usa um dispositivo com 36 pixels para monitorar o universo?

Por que a NASA usa um dispositivo com 36 pixels para monitorar o universo?

Os satélites da NASA usam uma ferramenta de imagem chamada Resolve, que tem um sensor de apenas 36 pixels.

Não é possível conectar à iTunes Store. Veja como corrigi-lo.

Não é possível conectar à iTunes Store. Veja como corrigi-lo.

Ao abrir a App Store no iPhone, iPad, Mac para baixar aplicativos ou jogos, aparece o erro Não é possível conectar à iTunes Store e aqui está a solução.

Redes privadas virtuais úteis no Google Chrome

Redes privadas virtuais úteis no Google Chrome

VPN (Virtual Private Network) é entendida simplesmente como um sistema de rede privada virtual, capaz de criar uma conexão de rede baseada em um determinado provedor de serviços.