Mostrando postagens com marcador programar. Mostrar todas as postagens
Mostrando postagens com marcador programar. Mostrar todas as postagens
sexta-feira, 3 de julho de 2020
Como executar um programa em modo administrador no windows
Marcadores:
administrador,
como,
programar,
windows
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
segunda-feira, 21 de janeiro de 2019
O que é uma Exception em java ?
Uma Exception ou excessão é uma situação que acontece quando um programa foge em algum momento da maneira como ele deveria funcionar.
Por exemplo um NullPointerException acontece quando tentamos acessar alguma informação de dentro de um varável nula.
Exemplo:
....
public String getNome()
{
Usuario usuario;
usuario.getNome();
}
....
No caso acima é lançado um NullPointerExecpton, pois estamos tentando acessar um atributo de uma variável não instanciada ou seja fugimos do fluxo correto do funcionamento do sistema.
Exemplo 1 - Fazendo o tratamento com try/catch:
//Tratando com try/cath
...
....
public String getNome()
{
Usuario usuario;
try{
usuario.getNome();
}catch(Exception e){
// ...tratamento
usuario= new Usuario();
usuario.nome = "Sem nome";
}
}
....
Exemplo 2 - lançando a Exception par ao método que fez a chamada ao método problemático:
Por exemplo um NullPointerException acontece quando tentamos acessar alguma informação de dentro de um varável nula.
Exemplo:
....
public String getNome()
{
Usuario usuario;
usuario.getNome();
}
....
No caso acima é lançado um NullPointerExecpton, pois estamos tentando acessar um atributo de uma variável não instanciada ou seja fugimos do fluxo correto do funcionamento do sistema.
Como evitar uma excessão ?
Uma maneira de tratar uma provável Exception em java é fazer utilização do try /cath ou enviar a mesma para método que veio chamar o método que pode estorar a Exception atraves do throws.Exemplo 1 - Fazendo o tratamento com try/catch:
//Tratando com try/cath
...
....
public String getNome()
{
Usuario usuario;
try{
usuario.getNome();
}catch(Exception e){
// ...tratamento
usuario= new Usuario();
usuario.nome = "Sem nome";
}
}
....
Exemplo 2 - lançando a Exception par ao método que fez a chamada ao método problemático:
....
public String getNome() throws Exception
{
Usuario usuario;
usuario.getNome();
}
....
public String getNome() throws Exception
{
Usuario usuario;
usuario.getNome();
}
....
quarta-feira, 26 de setembro de 2018
Programando em Go (Golang) - Arrays
Um array (arranjo) é um estrutura de dados onde é armazenado uma quantidade definida de valores e que podem serem acessados através de um índice.
Sintaxe:
var nome[tamanho] tipo
Onde:
- nome - Nome de variável array
- tamanho - Tamanho do array
- tipo - Tipo do array
No exemplo abaixo é criado um array de string com dez posições.
Exemplo 1:
var nomes[10]string
Iniciando array com valores
É possível inicializar um array já com seus devidos valores
Sintaxe:
nome := [tamanho]tipo{valor1,valor2,valorn}
Onde:
- nome - Nome do array.
- tamanho - Tamanho do Array
- valor1,valor2,valorn - Valores do array, lembrando que a quantidade de valor é a mesma citada no campo tamanho.
Exemplo:
idades :=[3]int{12,21,30}
Setar valor a uma posição especifica
É possível setar um valor para uma posição especifica de seu array para isso basta utilizar a sintaxe abaixo:
Sintaxe:
array[posicao]=valor
Onde:
array - Nome do array do qual terá um valor alterado.
posição - Posição no qual o valor será modificado.
valor - Valor a ser inserido na posição indicada pelo campo posição
Exemplo:
package main
import "fmt"
func main() {
var nomes [2]string
nomes[0] = "Mario"
nomes[1] = "Joaquim"
fmt.Println(nomes[0], nomes[1])
}
Acessando o valor de uma posição do array
Para pegar o valor de uma determinada posição do array basta usar a sintaxe abaixo:
Sintaxe:
array[posição]
Onde:
- array - nome do array a ter uma posição acessada.
- posição - Posição a ser acessada.
Exemplo:
Abaixo é possível ver um exemplo ver o acesso ao array, nos campos: nomes[0], nomes[1]
package main
import "fmt"
func main() {
var nomes [2]string
nomes[0] = "Mario"
nomes[1] = "Joaquim"
fmt.Println(nomes[0], nomes[1])
}
0
Onservaçõe Finais
terça-feira, 18 de setembro de 2018
Programando em Go (Golang) - Variáveis
Assim como em outras linguagens de programação uma variável é de suma importância em Go, para iniciar uma variável em Go utiliza a palavra chave var.
var nome string
var nome,cpf string
As variáveis em Go pode estar ao nível de pacote(package) ou local a uma função(func).
var nome string //Variável ao nivel do pacote
func main()
{
var cpf string //Variável ao nivel da função main
...
}
func calculoX()
{
var numero1,numero2 int //Variável ao nivel da função calculoX
...
}
import "fmt"
var nome, rg, cpf string
func main() {
var idade int
fmt.Println(nome, rg, cpf, idade)
}
Nesse exemplo as váriaveis nome, rg e cpf estão no nivel do pacote, já a idade está no nivel da função.
Em Go podemos inicializar multiplas váriveis em uma unica linha, uma por vez.
var var1,var2,var3 tipo_variavel = valor1,valor2,valor3
package main
import "fmt"
var dia,mes,ano int = 1, 2, 2012
func main() {
var nome,sobreNome,habilitado = "Mario", true, "Kent"
fmt.Println(nome,habilitado,dia, mes, ano, sobreNome)
}
Em Go (golang) é possível inicializar variáveis de maneira rápida através da assinatura := . Utilizando a mesma ao invés da palavra chave var a variável é inicializada com um tipo implícito.
nome_variavel := valor
package main
import "fmt"
var dia int = 8
func main() {
ano:=1988
nome:="Mario"
fmt.Println(nome,dia, ano)
}
Não é possível inicializar uma váriavel de maneira "rápida" fora do corpo de uma função o exemplo abaixo não está correto.
package main
import "fmt"
var dia int = 8
nome:="Mario" // trecho com erro
func main() {
ano:=1988
fmt.Println(nome,dia, ano)
}
Os tipos básicos de variáveis em Go são:
Em Go váriveis inicializadas sem um valor inicial explicito é dado o valor default para o mesma.
package main
import "fmt"
func main() {
var idade int
var altura float64
var habilitado bool
var nome string
fmt.Printf("%v, %v, %v , %v, %v", nome,idade, altura, habilitado, nome)
}
Em Go é possível converter o tipo de várivel utilizando a seguinte sintaxe:
tipo(valor)
var idade int = 30
var fidade float64 = float64(idade)
var uIdade uint = uint(fidade)
Anterior Início Próximo
Sintaxe:
var nome_variavel tipo_variavelOnde:
- nome_variavel - O nome propriamente dito da variável.
- tipo_variavel - Tipo da variável (int, string, etc)
Exemplos 1:
var idade intvar nome string
var nome,cpf string
Nível de acesso a variáveis
As variáveis em Go pode estar ao nível de pacote(package) ou local a uma função(func).
Sintaxe:
package pacoteXvar nome string //Variável ao nivel do pacote
func main()
{
var cpf string //Variável ao nivel da função main
...
}
func calculoX()
{
var numero1,numero2 int //Variável ao nivel da função calculoX
...
}
Exemplo 2:
package mainimport "fmt"
var nome, rg, cpf string
func main() {
var idade int
fmt.Println(nome, rg, cpf, idade)
}
Nesse exemplo as váriaveis nome, rg e cpf estão no nivel do pacote, já a idade está no nivel da função.
Variveis com inicialização
Em Go podemos inicializar multiplas váriveis em uma unica linha, uma por vez.
Sintaxe:
var var1,var2,var3 tipo_variavel = valor1,valor2,valor3
Onde:
- var1,var2,var3 - São as váriaveis a serem inicializadas.
- valor1,valor2,valor3 - Os valores que serão atribuidos as variáveis var1,var2,var3
Exemplo 3:
No exemplo abaixo é possível ver multiplas váriaveis sendo inicializadas ao mesmo tempo.package main
import "fmt"
var dia,mes,ano int = 1, 2, 2012
func main() {
var nome,sobreNome,habilitado = "Mario", true, "Kent"
fmt.Println(nome,habilitado,dia, mes, ano, sobreNome)
}
Inicialização rápida de váriaveis
Em Go (golang) é possível inicializar variáveis de maneira rápida através da assinatura := . Utilizando a mesma ao invés da palavra chave var a variável é inicializada com um tipo implícito.
Sintaxe:
nome_variavel := valor
Onde:
- nome_variavel - Nome da váriavel propriamente dita.
- valor - Valor a ser atribuido intricicamente a váriavel nome_variavel.
Exemplo 4:
package main
import "fmt"
var dia int = 8
func main() {
ano:=1988
nome:="Mario"
fmt.Println(nome,dia, ano)
}
Não é possível inicializar uma váriavel de maneira "rápida" fora do corpo de uma função o exemplo abaixo não está correto.
Exemplo 5:
Um exemplo com erro.package main
import "fmt"
var dia int = 8
nome:="Mario" // trecho com erro
func main() {
ano:=1988
fmt.Println(nome,dia, ano)
}
Tipos de variáveis em Go
Os tipos básicos de variáveis em Go são:
- bool
- byte
- complex64 complex128
- float32 float64
- int int8 int16 int32 int64
- rune
- string
- uint uint8 uint16 uint32 uint64 uintptr
Variável inicializada sem valor
Em Go váriveis inicializadas sem um valor inicial explicito é dado o valor default para o mesma.
- Para tipos números é atribuido o valor 0
- Para tipo booleano é atribuido o valor false
- Para tipo string é atribuído o valor "" (string vazia)
Exemplo 6:
package main
import "fmt"
func main() {
var idade int
var altura float64
var habilitado bool
var nome string
fmt.Printf("%v, %v, %v , %v, %v", nome,idade, altura, habilitado, nome)
}
Conversão de tipo
Em Go é possível converter o tipo de várivel utilizando a seguinte sintaxe:
tipo(valor)
Onde:
- tipo - Tipo para o qual o "valor" será convertido.
- valor - Valor a ser convertido.
Exemplo:
var fidade float64 = float64(idade)
var uIdade uint = uint(fidade)
Anterior Início Próximo
sexta-feira, 19 de janeiro de 2018
Como encontrar erros no código mais facilmente
Introdução
O principal objetivo deste post é disponibilizar algumas dicas simples algumas maneiras simples de como encontrar erros e dar manutenção de maneira mais simples em um código fonte.
Dicas
1º Escreva um código auto explicativo.
Tente escrever um código auto explicativo, que por si só diga o que faz passo a passo, por exemplo caso você tenha uma variável que guarde um atributo do tipo texto o valor de um nome do usuário, de um nome para ela de "nome" ou "nomeUsuario" não faz sentido colocar o nome dessa variavel de "n" ou algo parecido.
Tente dar nomes aos métodos de sua classe que faça sentido, caso seu método seja um gerador de organizador de texto por exemplo, de um nome para o mesmo que se condiz com sua função, por exemplo "organizar Texto".
2º Escreva métodos pequenos
Escreva métodos pequenos de no máximo 25 linhas, isso tornará seu código mais fácil de manutenção.
3º Reaproveite o código
Reaproveite os métodos e trechos e códigos já criados na mesma classe, evite colocar trechos de códigos repetidos que faça a mesma função em toda um classe. Um exemplo seria ter uma condição que verifica se uma variável está nula, crie um método que faça isso e o chame quando necessário, isso evitará manutenção em várias locais para o mesmo fim.
4º O modo debug é seu amigo
Quando possível debug seu código isso poderá facilitar em muito o processo para achar os erros mais facilmente.
5º Não esconda exceções para baixo do tapete
Em nenhuma hipótese capture um exceção e faça ela desaparecer. Caso o seu código capture uma execeção exiba de alguma maneira que a mesma foi capturada.
Assinar:
Postagens (Atom)