quinta-feira, 25 de outubro de 2018

Programando em Go (Golang) - Map

table, th, td { border: 1px solid black; } O mapa em golang assim como em outras linguagem é uma estrutura de dados onde é guardado um chave e um valor referente a mesma chave.

Exemplo:





O valor zero do mapa é considerado nulo (nil) e sendo assim não é possível adicionar novas chaves e valores no mesmo.


Criação de um mapa

Para criarmos um mapa utilizamos a sintaxe abaixo:

nome_mapa = make (map[tipo_chave]tipo_valor)

Onde:


nome_mapa - Nome do mapa a ser criado.
tipo_chave - Tipo de chave do mapa a ser criado
tipo_valor - Tipo do valor que será referenciado pela chave.


Adição de valores 

Para adicionar um valor a um mapa basta utilizar a sintaxe:

nome_mapa[nome_chave]=valor

Onde:

nome_mapa - Nome do mapa a ser criado.
nome_chave - Nome da chave referência do mapa
valor - Valor a ser referenciado pela chave.

Acesso a um valor 

Para acessarmos o conteúdo de uma chave do mapa basta utilizar a sintaxe abaido:

nome_mapa[nome_chave]

Onde:

nome_mapa - Nome do mapa a ser criado.
nome_chave - Nome da chave referência do mapa

Exemplo:

package main
import "fmt"

func main(){

  //Criação do mapa
  m:=make(map[string]string)

  //Adição de valores
  m["nome"]="Mario"
  m["cpf"]="333.213.333-35"
  
  //Acesso a um valor
  fmt.Println(m["cpf"])

}


Saída do programa acima:




Criação rapida (literal)

Para criarmos um mapa utilizamos a sintaxe abaixo:

nome_mapa = map[tipo_chave]tipo_valor{
chave_1:valor_1, chave_2:valor_2
}

Onde:


nome_mapa - Nome do mapa a ser criado.
tipo_chave - Tipo de chave do mapa a ser criado
tipo_valor - Tipo do valor que será referenciado pela chave.
chave_1 - Nome da  chave_1
valor_1 - Valor da chave_1

Exemplo:

package main

import "fmt"

func main(){

  //Criação do mapa
  m:=map[string]string{"nome":"Mario", "cpf":"333.213.333-35"}

  //Acesso a um valor
  fmt.Println(m["cpf"])

}


Deletando um valor do mapa

Para deletar um valor do mapa utilizamos a função delete

Sintaxe:

delete(nome_mapa,chave)

Onde:

nome_mapa - Nome do mapa a ter um item deletado
chave - Nome da chave a ser deletada.


Verificação de existência chave


Há caso que é necessário verificar se um elemento existe em um determinado mapa para isso usa sintaxe abaixo:


valor,verificador=nome_mapa[chave]


Onde:


valor - Valor da chave referenciado pela chave
verificador - Nome da variável que receberá o valor true (existe elemento) ou false (não existe o elemento)


Exemplo:


package main

import "fmt"

func main(){

  //Criação do mapa

  m:=map[string]string{"nome":"Mario", "cpf":"333.213.333-35"}

  //Acesso a um valor

  fmt.Println(m["cpf"])

  //Verificação da existencia do elemento
  valor,ok := m["cpf"]
  fmt.Println("O elemento[cpf] valor= ",valor," existe ? ",ok)

  //Remoção da chave cpf
  delete(m,"cpf")
  
  //Verificação da existencia do elemento
  valor,ok = m["cpf"]

  fmt.Println("O elemento[cpf] valor= ",valor," existe ? ",ok)


}




Abaixo é possível ver o resultado da execução do programa acima:




Voltar para menu

sexta-feira, 19 de outubro de 2018

Finalizando um aplicação go

    os.Exit(3)


Há momentos que é necessário finalizar uma aplicação por algum motivo qualquer. Em golang utilizamos o método Exit da classe os.


Sintaxe:


os.Exit(codigo)


Onde:


codigo - Código para termino (exemplo:3)



Exemplo:


O programa abaixo finaliza o programa antes de executar o comando defer.

package main

import (
"os"

"fmt"
)

func main (){

 fmt.Println("Inicio\n")
 defer fmt.Println("\nFim\n")
 os.Exit(3)

}


quarta-feira, 10 de outubro de 2018

Programando em Go (Golang) - Slice part 2

Adicionando itens a um slice


Para adicionar um novo item a um slice utilizamos a função append. A função append recebe com parâmetro slice, e o valor que será adicionado ao mesmo, sendo que é possível passar mais que um parâmetro de valor para o slice.

Sintaxe:

 append (slice,valor,...,valor_n)

Onde


slice  - Nome do slide a ser atribuído.
valor,...,valor_n - Valores a serem adicionado ao slice

Exemplo: 


No exemplo abaixo vemos dois exemplos onde é possível ver adição de itens a um determinado slice.

package main

import ( "fmt")

func main (){
 var sliceNomes []string


 fmt.Printf("\n Total de itens no slice é : %d",len(sliceNomes))

 //No exemplo abaixo é adicionado um item ao slice sliceNomes

 sliceNomes=append(sliceNomes,"Maria")

 fmt.Printf("\n Total de itens no slice é : %d",len(sliceNomes))

 //No exemplo abaixo é adicionado três itens ao slice sliceNomes

 sliceNomes= append(sliceNomes,"John", "Dany", "Sansa")


 fmt.Printf("\n Total de itens no slice é : %d",len(sliceNomes))


}

Abaixo é possível ver o resultado da execução do programa acima no powershell (pode escolher o cmd também)..





Range


O range é comando utilizado para acessar de maneira mais simples e rápida os valores de um slice em um laço for.
Quando utilizamos o range é tornado para o programador dois valores: um int e outro do tipo de dado de  seu slice, abaixo é possível ver essa ação na sintaxe e exemplo abaixo.


Sintaxe:

for contador,valor :range slice{
 /...Ações a  serem tomadas
}

Onde:

contador - Variável do contador do laço.
valor - Contido na posição explicitada pelo contador dentro do slice.
slice - Slice a ser percorrido



Exemplo:


package main

import "fmt"

var nomes = []string{"Bruce", "Tony","Pietro", "Vanda", "Logan", "Wade"}

func main() {
for i, v := range nomes{
fmt.Printf("[%d] = %s\n", i, v)
}
}



Voltar para o menu

quinta-feira, 4 de outubro de 2018

Pegar o nome do usuário logado com linha de comando

Existem várias maneiras de se obter o usuário no qual você está logado no sistema, para isso apresentaremos algumas maneira abaixo utilizando powerShell e cmd.



Power Shell

Get-WMIObject -class Win32_ComputerSystem | select username



Prompt de comando cmd

Utilizando o prompt (cmd) basta abrir o mesmo executar os comandos dos topicos abaixo.

Através do comando whoami

Através do whoami é obtido somente o nome do usuário.

Sintaxe:

whoami



Através do comando query user

Através do query user são obtidos mais informações como: nome da sessão (SessionName) e hora de logon.

Sintaxe:

query user

domingo, 30 de setembro de 2018

Programando em Go (Golang) - Slice part 1

O Slice é um array sem tamano fixo. O Slice quando criado é especificado a quantidade de itens que o mesmo tem, não a quantidade maxima que poderá ter como acontece com o array. Abaixo é possível ver a sintaxe básica para criação de um slice.

Sintaxe:

nome[inicio:fim]

Onde:

  • nome - Nome do slice
  • inicio - Índice Valor inicial do slice
  • fim - Índice do valor final do slince

Exemplo:

package main

import (
"fmt"
)

func main (){

numeros := [8]int{1,2,3,4,5,6,7,8}
selecao:=numeros[1:4]

fmt.Println("Numeros ",numeros)
fmt.Println("Selecao: ",selecao)

}

Neste exemplo é criado um slice que contém os valores 2,3,4 ou seja ele pegou os valores do índice 1 até o índice 4. Abaixo é possível visualizar o resultado da execução do programa acima.




Um slice não guarda nenhum tipo de dado ele apenas guarda uma parte do array, ou seja se o array for modificado o valor do mesmo também será alterado. Vide o exemplo abaixo:

package main

import (
"fmt"
)

func main (){

numeros := [8]int{1,2,3,4,5,6,7,8}
selecao:=numeros[1:4]

fmt.Println("Numeros ",numeros)

fmt.Println("Selecao: ",selecao)

fmt.Println("Alteração do valor do índice 2 para 44")

numeros[2]=44 //Nesse trecho é alterado o valor da posição 2 de 3                  //para 44

fmt.Println("Numeros ",numeros)

fmt.Println("Selecao: ",selecao)

}

Abaixo é possível ver a saída do programa acima:




Slice Incompletos


É possível criar slice com a omissão dos inicio e de fim:


Exemplos:



  • nome[1:10] - Slice com todos os parâmetros
  • nome[:10] - Slice com apenas o parâmetro de fim.
  • nome[1:] - Slice com apenas o parâmetro de inicio.
  • nome[:] - Slice sem ambos os parâmetros.

Slice literal


Um slice pode literal é como um array sem tamanho

Sintaxe:


nome:=[]tipo{va1,val2,..,valn}


Onde:


  • nome - Nome do slice
  • tipo - Tipo do slice
  • va1,val2,..,valn - Valores


Exemplo:


package main

import (
"fmt"
)

func main (){
 nSliceLiteral := []int{1,2,3,4,5,6,7,8}
 fmt.Println("Numeros ",nSliceLiteral)
}

Slice:  tamanho e capacidade

É possível verificar o tamanho e a capacidade de um slice atraves dos métodos len(s) e cap(s).

Saber o tamanho do slice.

Sintaxe:


len(slice) 

Onde:



  • slice - Nome do slice do qual será verificado o tamanho.


Para saber a capacidade de um slice utilizamos o método cap(s)

Sintaxe:


cap(slice) 

Onde:

  • slice - Nome do slice do qual será verificado o tamanho.

Exemplo:


package main

import (

"fmt"

)

func main (){

   array := [8]int{1,2,3,4,5,6,7,8}

   sl:=array[0:3]
   fmt.Println("Numeros ",sl)

   fmt.Printf("Tamanho: %d Capacidade: %d",len(sl),cap(sl))

}




Slice com make


É possível criar um slice com metodo make , essa é uma maneira de criar um array dinamico.


Criando slice com tamanho e make


Sintaxe :


 s := make([] tipo, tamanho)

Onde: 

  • s - Nome do slice.
  • tipo - Tipo do slice.
  • tamanho - Tamanho do slice.

Exemplo:
package main

import (

"fmt"

)

func main (){

   sl:= make([]int,2)

   fmt.Println("Numeros ",sl)

   fmt.Printf("Tamanho: %d Capacidade: %d",len(sl),cap(sl))

}

Criando slice com tamanho e capaciade através do make


Sintaxe :


 s := make([] tipo, tamanho,capacidade)

Onde: 

  • s - Nome do slice.
  • tipo - Tipo do slice.
  • tamanho - Tamanho do slice.
  • capacidade - Capacidade do slice.

Exemplo:

package main

import (

"fmt"

)

func main (){

   sl:= make([]int,2,5)

   fmt.Println("Numeros ",sl)

   fmt.Printf("Tamanho: %d Capacidade: %d",len(sl),cap(sl))

}



Saída do programa acima:




quarta-feira, 26 de setembro de 2018

Como pegar o mac de computadores na rede

Caso seja necessário algum dia que seja pego o mac dos computadores em uma rede, basta utilizar o comando arp. Vale lembrar que é necessário abrir o  powershell ou o cmd para executar o comando.cd

MAC de todos computadores de uma rede


Sintaxe:


arp -a




MAC de um IP especifico

Para obter o mac de um determinado IP basta utilizar a sintaxe abaixo:

Sintaxe:


arp -a IP


Onde:


IP - O IP propriamente dito (ex: 10.10.20.1 , 192.168.0.1)


Exemplo:

arp -a 192.168.0.12


Pegando MAC do PC

O comando para pegar o mac do proprio pc é  getmac

Sintaxe

getmac



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, 25 de setembro de 2018

Programando em Go (Golang) - Estruturas Struct

Uma estrutura é uma coleção de campos.

Sintaxe:

type nome_estrutura struct {
var_1 tipo_1
var_2 tipo_2
...
var_n tipo_n
}

Onde:


  • nome_estrutura - Nome da estrutura.
  • var_1, var_2,var_n - Nome dos campos(váriveis) contidas na estrutura.
  • tipo_1,tipo_2,tipo_n - Tipo da var_1,var_2,var_n


Uma maneira bem simples de iniciar uma estrutura e passar os valores para mesma através da sintaxe abaixo(nesse exemplo assumintos a estrutura acima:

nome_estrutura{valor1,valor2,..valorn}

Onde:


  • nome_estrutura- Nome da estrutura.
  • valor1 - Valor a ser adionado em var_1.
  • valor2 - Valor a ser adionado em var_2.
  • valorn - Valor a ser adionado em var_n.



Onde:

Exemplo.


package main

import "fmt"

type Pessoa struct {
nome string
cpf string
        idade int
}

func main() {
fmt.Println(Pessoa{"Nosbor", "392.231.334-40", 21})
}



Voltar para menu