Golang 기본 - Constantes

Esse post faz parte de uma série onde pretendo compartilhar o básico essencial para desenvolver com GoLang.



Constantes são muito comuns e bastante utilizadas, para quem está iniciando pode parecer confuso por elas serem semelhantes a variáveis. A principal diferença das constantes é que elas são definitivas, uma vez criada o valor não é mais alterado, como o próprio nome diz: constante.

이제 Go에서 작동합니까?



Em Go as constantes são criadas na compilação do código. Uma expressão comum é dizer que é em "tempo de compilação". Enquanto as variáveis ​​são criadas em tempo de execução (런타임). Por esse motivo as constantes só podem ser dos tipos básicos do Go: strings , números , caracteres ebooleanos .

Para saber mais: https://go.dev/doc/effective_go#constants

크리안도 상수



Vamos ao primeiro 예시:

package main

import "fmt"

const (
    appName    = "go_basico"
    serverPort = 3000
)

func main() {
    fmt.Println(appName, serverPort)
}


Você também pode criar dessa 형식:

package main

import "fmt"

const appName    = "go_basico"
const serverPort = 3000

func main() {
    fmt.Println(appName, serverPort)
}


아그루판도 상수



O interessante é que você agrupe suas constantes, combinando valores que sejam relacionados, isso vai deixar o código bastante simples. 예를 들어, vamos imaginar que nos temos um produto e que ele possui dois atributos: cor estatusEsses dois atributos possuem valores limitados, um conjunto de constantes:

package main

import "fmt"

// conjunto de cores
const (
    vermelho = "#ff0000"
    verde    = "#00ff00"
    azul     = "#0000ff"
)

// conjunto de status do produto
const (
    rascunho  = 1
    publicado = 2
    congelado = 3
    deletado  = 4
)

func main() {
    fmt.Println(vermelho, azul, verde)
    fmt.Println(rascunho, publicado, congelado, deletado)
}


Conjuntos de constantes



Se você já teve contato com outras linguagens é possível que esteja se perguntando se não poderíamos ter feito isso comenums . 대답은 é sim e não.
  • Sim, porque Go possui o conceito de tipos enumerados.
  • Não, porque em Go você não tem uma palavra reservada para criar enum .

  • Eu convido você que está lendo, a refletir um pouco sobre isso, algumas vezes nós podemos acabar caindo em armadilhas de se prender a nomes como enum e esquecer o que eles são em sua essência.

    Bom, o que nós precisamos fazer é definir um tipo customizado para os nossos conjuntos:

    type cor string
    type status int
    


    Futuramente teremos post sobre tipos e tipos customizados

    package main
    
    import (
        "fmt"
    )
    
    type cor string
    
    const (
        vermelho cor = "#ff0000"
        verde    cor = "#00ff00"
        azul     cor = "#0000ff"
    )
    
    type status int
    
    const (
        rascunho  status = 1
        publicado status = 2
        congelado status = 3
        deletado  status = 4
    )
    
    func main() {
        fmt.Println(vermelho, azul, verde)
        fmt.Println(rascunho, publicado, congelado, deletado)
    }
    
    


    이오타 활용



    Para conjuntos numéricos, como o nosso conjunto de status, temos a opção de usar a palavra reservada iota , ela vai gerar valores sequenciais automaticamente:

    package main
    
    import "fmt"
    
    type cor string
    
    const (
        vermelho cor = "#ff0000"
        verde    cor = "#00ff00"
        azul     cor = "#0000ff"
    )
    
    type status int
    
    const (
        //por padrão iota inicia em 0
        rascunho status = iota + 1
        publicado
        congelado
        deletado
    )
    
    func main() {
        fmt.Println(vermelho, azul, verde)
        fmt.Println(rascunho, publicado, congelado, deletado)
    }
    
    


    이력서


  • Constantes são declaradas com a palavra reservada const .
  • 상수는 컴파일 템포에서 크리아다스입니다.
  • Agrupar constantes em conjuntos contextualizados simplifica o código.
  • possuí tipos enumerados로 이동합니다.
  • palavra reservada iota 코드는 간단합니다.
  • 좋은 웹페이지 즐겨찾기