Skip to content

Latest commit

 

History

History
150 lines (122 loc) · 2.07 KB

1.md

File metadata and controls

150 lines (122 loc) · 2.07 KB

定义变量

1、长格式定义变量

var a int
var b, c int = 3,4
var s string

2、短格式定义变量(通过赋值类型推断出变量类型)

var a = 1
var b, c, d = 3, 4, true 
var s = "abc"

3、函数内部用:=来首次定义初始化变量

a, b, c, s := 3, 4, true, "abc"

4、函数外批量定义变量

var (
    a = 3
    s = "abc"
    b = true
)

小结

  • 使用var关键字
    • var a, b, c bool
    • var s1, s2 string = "Hello", "World"
    • 可放在函数内,或直接放在包内
    • 使用var()集中定义变量
  • 让编译器自动决定类型
    • var a, b, i, s1, s2 = true, false, 3, "Hello", "World"
  • 使用:=定义变量
    • a, b, i, s1, s2 := true, false, 3, "Hello", "World"
    • 只能在函数内使用

实例

package main

import (
	"fmt"
	"math"
	"math/cmplx"
)

var (
	aa = 3
	ss = "kkk"
	bb = true
)

func variableZeroValue() {
	var a int
	var s string
	fmt.Printf("%d %q\n", a, s)
}

func variableInitialValue() {
	var a, b int = 3, 4
	var s string = "abc"
	fmt.Println(a, b, s)
}

func variableTypeDeduction() {
	var a, b, c, s = 3, 4, true, "def"
	fmt.Println(a, b, c, s)
}

func variableShorter() {
	a, b, c, s := 3, 4, true, "def"
	b = 5
	fmt.Println(a, b, c, s)
}

func euler() {
	fmt.Printf("%.3f\n",
		cmplx.Exp(1i*math.Pi)+1)
}

func triangle() {
	var a, b int = 3, 4
	fmt.Println(calcTriangle(a, b))
}

func calcTriangle(a, b int) int {
	var c int
	c = int(math.Sqrt(float64(a*a + b*b)))
	return c
}

func consts() {
	const (
		filename = "abc.txt"
		a, b     = 3, 4
	)
	var c int
	c = int(math.Sqrt(a*a + b*b))
	fmt.Println(filename, c)
}

func enums() {
	const (
		cpp = iota
		_
		python
		golang
		javascript
	)

	const (
		b = 1 << (10 * iota)
		kb
		mb
		gb
		tb
		pb
	)

	fmt.Println(cpp, javascript, python, golang)
	fmt.Println(b, kb, mb, gb, tb, pb)
}

func main() {
	fmt.Println("Hello world")
	variableZeroValue()
	variableInitialValue()
	variableTypeDeduction()
	variableShorter()
	fmt.Println(aa, ss, bb)

	euler()
	triangle()
	consts()
	enums()
}