English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 基础教程

Golang 控制语句

Golang 函数 & 方法

Golang 结构体

Golang 切片 & 数组

Golang 字符串(String)

Golang 指针

Golang 接口

Golang 并发

Golang 异常(Error)

Golang 其他杂项

Função do Linguagem Go

函数通常是程序中的代码或语句块,使用户能够重复使用相同的代码,从而最终达到节省内存,节省时间,更重要的是,提供了更好的代码可读性。因此,基本上函数是语句的集合,这些语句执行某些特定的任务并将结果返回给调用方。函数也可以执行某些特定任务而无需返回任何内容。

函数声明

函数声明是一种构造函数的方法。

语法:

func function_name(Parameter_list)(Return_type){
    // function body.....
}

该函数的声明包含:

  • func:它是Go语言的关键字,用于创建函数。

  • function_name:它是函数的名称。

  • Parameter_list:Contém o nome e o tipo dos parâmetros da função.

  • Contém o nome e o tipo dos parâmetros da função.Return_type:

Este é opcional e contém o tipo de valor retornado pela função. Se o return_type for usado, uma instrução return deve ser usada dentro da função.

Chamada de função12,10)é chamada na função principal.

package main
import "fmt"
//area() é usada para encontrar a área do retângulo
//Os dois parâmetros da função, ou seja, comprimento e largura
func area(comprimento, largura int) int {
    Ar := comprimento * largura
    return Ar
}
func main() {
    //Exibir a área do retângulo
    //Chamada por método
    fmt.Printf("Área do retângulo: %d", area(12, 10))
}

Saída:

Área do retângulo: 120

Parâmetros de função

No Go, os parâmetros passados para uma função são chamados de parâmetros reais (parâmetros reais), e os parâmetros recebidos pela função são chamados de parâmetros formais (parâmetros formais).

Nota:Por padrão, o Go usa o método de chamada por valor para passar parâmetros para funções.

O Go suporta dois métodos de passar parâmetros para funções:

  1. Chamada por valor: Neste método de passagem de parâmetros, o valor do parâmetro real é copiado para o parâmetro formal da função e ambos os tipos de parâmetros são armazenados em diferentes locais de armazenamento. Portanto, qualquer alteração feita dentro da função não reflete no parâmetro real do chamador.

    package main 
       
    import "fmt"
       
    // Função de troca de valores
    func swap(a, b int) int{ 
      
        var o int
        o = a 
        a = b 
        b = o 
         
       return o  
    } 
       
    func main() { 
     var p int = 10 
     var q int = 20 
      fmt.Printf("p = %d e q = %d", p, q) 
       
     // call by values 
     swap(p, q) 
       fmt.Printf("\np = %d e q = %d", p, q) 
    }

    Saída:

    p = 10 e = q = 20
    p = 10 e = q = 20
  2. Chamada por referência:Os parâmetros reais e formais apontam para a mesma posição, portanto, qualquer alteração feita dentro da função reflete no parâmetro real do chamador.

    package main
    import "fmt"
    //Função de troca de valores
    func swap(a, b *int) int {
        var o int
        o = *a
        *a = *b
        *b = o
        return o
    }
    func main() {
        var p int = 10
        var q int = 20
        fmt.Printf("p = %d e q = %d", p, q)
        //Chamada por referência
        swap(&p, &q)
        fmt.Printf("\np = %d e q = %d", p, q)
    }

    Saída:

    p = 10 e = q = 20
    p = 20 e q = 10