Latest web development tutorials

Ir variáveis ​​lingüísticas

Variável da matemática, linguagens de computador pode ser armazenado ou resultados calculados podem ser representados valor abstração. As variáveis ​​podem ser acessados ​​através do nome da variável.

nomes de variáveis ​​Ir língua consistir de letras, números, sublinhados, das quais a primeira letra não é numérico.

A forma geral de uma variável é declarada usando a palavra-chave var:

var identifier type

declaração da variável

Primeiro, especifique o tipo de variável, a declaração se a atribuição, use o padrão.

var v_name v_type
v_name = value

O segundo, com base no valor de tipos de variáveis ​​de auto-determinação.

var v_name = value

Em terceiro lugar, omitindo var, nota: Variável = Esquerda não deve ser declarado no local, caso contrário ele irá causar um erro do compilador.

v_name := value

// 例如
var a int = 10
var b = 10
c : = 10

Exemplos são os seguintes:

package main
var a = "w3cschool本教程"
var b string = "w3cschool.cc"
var c bool

func main(){
    println(a, b, c)
}

A exemplos de implementação acima dos resultados:

w3cschool本教程 w3cschool.cc false

declaração Multivariable

//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3

var vname1, vname2, vname3 = v1, v2, v3 //和python很像,不需要显示声明类型,自动推断

vname1, vname2, vname3 := v1, v2, v3 //出现在:=左侧的变量不应该是已经被声明过的,否则会导致编译错误


// 这种因式分解关键字的写法一般用于声明全局变量
var (
    vname1 v_type1
    vname2 v_type2
)

Exemplos são os seguintes:

package main

var x, y int
var (  // 这种因式分解关键字的写法一般用于声明全局变量
    a int
    b bool
)

var c, d int = 1, 2
var e, f = 123, "hello"

//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"

func main(){
    g, h := 123, "hello"
    println(x, y, a, b, c, d, e, f, g, h)
}

A exemplos de implementação acima dos resultados:

0 0 0 false 1 2 123 hello 123 hello

Tipos de valor e tipos de referência

Todos os como int, float, bool e corda estes tipos básicos são todos os tipos de valor, utilizando estes tipos de variáveis ​​diretamente para o valor armazenado na memória:

Quando você usa o sinal de igual = quando o valor de uma variável é atribuído a outra variável, tais como: j = i , é na verdade o valor de memória i será uma cópia de:

Você pode obter o endereço de memória da variável i & i, por exemplo: 0xf840000040 (cada endereço pode ser diferente). Valor armazenado tipo de valor variável na pilha.

endereço de memória irá variar dependendo da máquina, ou o mesmo programa em máquinas diferentes após a execução terá endereços de memória diferentes. Uma vez que cada máquina pode ter uma disposição diferente de memória, e uma atribuição de posição pode variar.

dados mais complexo, muitas vezes requer o uso de várias palavras, esses dados são geralmente armazenados usando um tipo de referência.

A variável de tipo de referência R1 R1 é o valor armazenado na memória, onde o endereço (digital), ou a posição do endereço de memória da primeira palavra está localizado.

O endereço de memória é chamado um ponteiro que estava realmente lá é outra palavra.

Com referência a uma pluralidade de tipos de ponteiro de palavra pode ser em endereços de memória contígua (esquema de memória é contínua), o qual é um cálculo da forma mais eficiente de armazenamento, estes podem também ser armazenados na memória de palavras disperso, cada uma palavra indica onde o próximo endereço de memória palavra.

Quando o r2 instrução de atribuição = R1, apenas referências (endereço) é copiado.

Se o valor R1 é alterada, então o valor de todas as citações irá ser modificado para apontar, neste caso, R2 também ser afectados.


pequeno formulário, use o: = operador de atribuição

Nós sabemos que você pode deduzir automaticamente o tipo de uma variável é inicializada pela variável de sistema for omitido, a declaração escrita sobre a palavra-chave declaração var é na verdade um pouco redundante, por isso, pode ser abreviado-los como uma: = 50 ou b: = false.

A e tipo B (int e bool) será automaticamente deduzido do compilador.

Esta é a forma preferida de o uso de variáveis, mas só pode ser usado no corpo da função, que não pode ser utilizado para declarar com a designação de variáveis ​​globais. Use operadores: = pode eficientemente criar uma nova variável chamada instrução de inicialização.

precauções

Se o mesmo bloco de código, não podemos voltar a usar o mesmo nome para uma instrução de inicialização variável, por exemplo: a: = 20 não é permitido, o compilador irá exibir um erro há novas variáveis ​​no lado esquerdo: =, mas um 20 = é possível, porque é a mesma variável é atribuído um novo valor.

Se você usá-lo antes de definir a variável de uma, você receberá um erro de compilação indefinido: a.

Se você declarar uma variável local, mas não utilizados no mesmo bloco de código nele, você receberá um erro de compilação, como o exemplo a seguir variável cuja:

func main() {
   var a string = "abc"
   fmt.Println("hello, world")
}

Tente compilar este código irá obter o erroa declarada e não utilizados.

Além disso, para dar uma atribuição simples não é suficiente, este valor deve ser utilizado, de modo que o uso

fmt.Println("hello, world", a)

Ela irá remover erros.

Mas variáveis ​​globais são declaradas mas não tem permissão para usar.

>

Várias variáveis ​​do mesmo tipo pode ser declarado na mesma linha, tais como:

var a, b, c int

Mais variáveis ​​pode ser atribuído na mesma linha, tais como:

a, b, c = 5, 7, "abc"

A linha acima assume que as variáveis ​​A, B e C foram declarados, caso contrário, ele deve ser usado da seguinte maneira:

a, b, c := 5, 7, "abc"

Estes valores estão à direita na mesma ordem atribuído a variável do lado esquerdo, de modo que um valor é cinco, b valor é 7, o valor de c é "ABC".

Esta atribuição é chamado paralelo ou simultaneamente.

Se você quiser trocar os valores de duas variáveis, você pode simplesmente usar a, b = b, a.

_ identificador vazio também é usado valores descartadas, tais como o valor de 5: _, b = 5, 7 foi abandonada.

_ Na verdade, uma variável só de escrita, você não pode obter o seu valor. Vai fazer isso porque o idioma em que você deve usar todas as variáveis ​​são declaradas, mas às vezes você não precisa usar todos os valores de retorno de uma função obtida.

Atribuição paralela também é usado como uma função retornar vários valores de retorno, como val e err erro aqui é obtida simultaneamente chamando a função Func1: val, err = Func1 (Q1).