Mostrando postagens com marcador exemplos. Mostrar todas as postagens
Mostrando postagens com marcador exemplos. Mostrar todas as postagens
quinta-feira, 14 de janeiro de 2021
segunda-feira, 28 de janeiro de 2019
Programando em Go (Golang) - Interface
Em golang uma interface é uma coleção de assinaturas de métodos. Em golango para se utilizar um intreface basta apenas implementar os métodos contidas na mesma.
Sintaxe:
type nome_interface interface{
assinatura_metodo_1
assinatura_metodo_2
...
assinatura_metodo_n
}
Onde:
nome_interface - Nome da interface
assinatura_metodo_1 - Assinatura de um método.
assinatura_metodo_2 - Assinatura de um método.
package main
import ( "fmt"
"strings")
type impressao interface{
maiusculo() string
minusculo() string
}
type usuario struct{
nome, sobrenome string
}
type cidade struct{
nome, estado string
}
func (c cidade) maiusculo() string{
retorno:=strings.ToUpper(c.nome)+" - "+strings.ToUpper(c.estado)
return retorno
}
func (c cidade) minusculo() string{
retorno:=strings.ToLower(c.nome)+" - "+strings.ToLower(c.estado)
return retorno
}
func (u usuario) maiusculo() string{
retorno:=strings.ToUpper(u.nome)+" "+strings.ToUpper(u.sobrenome)
return retorno
}
func (u usuario) minusculo() string{
retorno:=strings.ToLower(u.nome)+" "+strings.ToLower(u.sobrenome)
return retorno
}
func main(){
cidade:= cidade{nome:"Lorena", estado:"São Paulo"}
usuario:= usuario{nome:"Robson", sobrenome:"Gomes"}
fmt.Println("\nDados da Usuario:\n")
fmt.Println(" ",usuario.maiusculo())
fmt.Println(" ",usuario.minusculo())
fmt.Println("\nDados da Cidade:\n")
fmt.Println(" ",cidade.maiusculo())
fmt.Println(" ",cidade.minusculo())
}
Como foi possível ver acima foi criado um programa que conta com a interface impressao:
type impressao interface{
maiusculo() string
minusculo() string
}
Nela é definida duas assinaturas de métodos simples, sendo que ambas retornam uma string. Logo os dois métodos são implementados pela estrutura usuario e cidade.
func (c cidade) maiusculo() string{
retorno:=strings.ToUpper(c.nome)+" - "+strings.ToUpper(c.estado)
return retorno
}
func (c cidade) minusculo() string{
retorno:=strings.ToLower(c.nome)+" - "+strings.ToLower(c.estado)
return retorno
}
func (u usuario) maiusculo() string{
retorno:=strings.ToUpper(u.nome)+" "+strings.ToUpper(u.sobrenome)
return retorno
}
func (u usuario) minusculo() string{
retorno:=strings.ToLower(u.nome)+" "+strings.ToLower(u.sobrenome)
return retorno
}
E a chamada as mesma é as mesmas são utilizadas no método main.
func main(){
cidade:= cidade{nome:"Lorena", estado:"São Paulo"}
usuario:= usuario{nome:"Robson", sobrenome:"Gomes"}
fmt.Println("\nDados da Usuario:\n")
fmt.Println(" ",usuario.maiusculo())
fmt.Println(" ",usuario.minusculo())
fmt.Println("\nDados da Cidade:\n")
fmt.Println(" ",cidade.maiusculo())
fmt.Println(" ",cidade.minusculo())
}
Abaixo é possível ver o resultado do método do programa acima:
Sintaxe:
type nome_interface interface{
assinatura_metodo_1
assinatura_metodo_2
...
assinatura_metodo_n
}
Onde:
nome_interface - Nome da interface
assinatura_metodo_1 - Assinatura de um método.
assinatura_metodo_2 - Assinatura de um método.
assinatura_metodo_N - Assinatura de um método.
Exemplo:
Exemplo:
package main
import ( "fmt"
"strings")
type impressao interface{
maiusculo() string
minusculo() string
}
type usuario struct{
nome, sobrenome string
}
type cidade struct{
nome, estado string
}
func (c cidade) maiusculo() string{
retorno:=strings.ToUpper(c.nome)+" - "+strings.ToUpper(c.estado)
return retorno
}
func (c cidade) minusculo() string{
retorno:=strings.ToLower(c.nome)+" - "+strings.ToLower(c.estado)
return retorno
}
func (u usuario) maiusculo() string{
retorno:=strings.ToUpper(u.nome)+" "+strings.ToUpper(u.sobrenome)
return retorno
}
func (u usuario) minusculo() string{
retorno:=strings.ToLower(u.nome)+" "+strings.ToLower(u.sobrenome)
return retorno
}
func main(){
cidade:= cidade{nome:"Lorena", estado:"São Paulo"}
usuario:= usuario{nome:"Robson", sobrenome:"Gomes"}
fmt.Println("\nDados da Usuario:\n")
fmt.Println(" ",usuario.maiusculo())
fmt.Println(" ",usuario.minusculo())
fmt.Println("\nDados da Cidade:\n")
fmt.Println(" ",cidade.maiusculo())
fmt.Println(" ",cidade.minusculo())
}
Como foi possível ver acima foi criado um programa que conta com a interface impressao:
type impressao interface{
maiusculo() string
minusculo() string
}
Nela é definida duas assinaturas de métodos simples, sendo que ambas retornam uma string. Logo os dois métodos são implementados pela estrutura usuario e cidade.
func (c cidade) maiusculo() string{
retorno:=strings.ToUpper(c.nome)+" - "+strings.ToUpper(c.estado)
return retorno
}
func (c cidade) minusculo() string{
retorno:=strings.ToLower(c.nome)+" - "+strings.ToLower(c.estado)
return retorno
}
func (u usuario) maiusculo() string{
retorno:=strings.ToUpper(u.nome)+" "+strings.ToUpper(u.sobrenome)
return retorno
}
func (u usuario) minusculo() string{
retorno:=strings.ToLower(u.nome)+" "+strings.ToLower(u.sobrenome)
return retorno
}
E a chamada as mesma é as mesmas são utilizadas no método main.
func main(){
cidade:= cidade{nome:"Lorena", estado:"São Paulo"}
usuario:= usuario{nome:"Robson", sobrenome:"Gomes"}
fmt.Println("\nDados da Usuario:\n")
fmt.Println(" ",usuario.maiusculo())
fmt.Println(" ",usuario.minusculo())
fmt.Println("\nDados da Cidade:\n")
fmt.Println(" ",cidade.maiusculo())
fmt.Println(" ",cidade.minusculo())
}
Abaixo é possível ver o resultado do método do programa acima:
Menu Principal
quinta-feira, 20 de setembro de 2018
Programando em Go (Golang) - Condicionais switch
Além do if/else em Go temos outro condicional que está presente em outras linguagens, no caso estou falando do switch. Com o switch é possível fazer uma especie de concatenação de if/else if e else.
{
case valor_1:
{
acao_01
break
}
case valor_2:
{
acao_02
break
}
case valor_3:
{
acao_03
break
}
case valor_n:
{
acao_n
break
}
default:
acao_default
}
Sintaxe:
switch varivel_comparacao:{
case valor_1:
{
acao_01
break
}
case valor_2:
{
acao_02
break
}
case valor_3:
{
acao_03
break
}
case valor_n:
{
acao_n
break
}
default:
acao_default
}
Onde:
- variavel_comparacao - Variável para comparação e execução dos blocos.
- valor_1,valor_2_valor_3,valor_n - São os possíveis valores de condição.
- acao_1, acao_2, acao_3, acao_n,acao_default - São os possíveis ações de acordo com a validação da variavel_comparacao.
- default - Caso nenhum valor seja aceito nos cases o mesmo o valor default é aceito.
Exemplo 1:
package main
import "fmt"
func main() {
var resp string
escolha := 32
switch escolha
{
case 32:
resp="Voce escolhe 32"
break;
case 45:
resp="Voce escolhe 45"
break;
case 65:
resp="Voce escolhe 65"
break;
case 25:
resp="Voce escolhe 25"
break;
default:
resp="Não é os valores acima"
}
fmt.Printf(resp)
}
Switch com case com mais de uma possíbilidade
Outra opção possível para facilitar a quantidade de case é colocar mais de uma condição ao mesmo.
Sintaxe:
switch varivel_comparacao:
{
case valor_1,valor_2:
{
acao_01
break
}
case valor_3:
{
acao_03
break
}
case valor_n:
{
acao_n
break
}
default:
acao_default
}
{
case valor_1,valor_2:
{
acao_01
break
}
case valor_3:
{
acao_03
break
}
case valor_n:
{
acao_n
break
}
default:
acao_default
}
Onde:
- variavel_comparacao - Variável para comparação e execução dos blocos.
- valor_1,valor_2_valor_3,valor_n - São os possíveis valores de condição.
- acao_1, acao_2, acao_3, acao_n,acao_default - São os possíveis ações de acordo com a validação da variavel_comparacao.
- default - Caso nenhum valor seja aceito nos cases o mesmo o valor default é aceito.
Exemplo 2:
package main
import "fmt"
func main() {
var resp string
escolha := 32
switch escolha{
case 32,45:
resp="Voce escolhe 32 ou 45"
break;
case 65:
resp="Voce escolhe 65"
break;
case 25:
resp="Voce escolhe 25"
break;
default:
resp="Não é os valores acima";
}
fmt.Printf(resp)
}
Assinar:
Postagens (Atom)