Go学习笔记一:基础知识

变量

变量声明

var v1 int
var v2 string
var v3 [10]int				//数组
var v4 []int				//数组切片
var v5 struct {
  f int
}
var v6 *int					//指针
var v7 map[string]int		//map,key为string类型,value为int类型
var v8 func(a int) int

变量初始化

var v1 int = 10
var v2 = 10
v3 := 10

变量赋值

var v1 int
v1 = 123

匿名变量

_, _, v1 := someFunc()

常量

常量定义

const zero = 0.0
const a, b, c = 3, 4, "foo"

预定义常量

true, false, iota

iota在const出现时重置为0,在下一个const出现之前,每出现iota,代表数字增加1

枚举

const (
	Sunday = iota
  	Monday
  	Tuesday
  	Wednesday
  	numberOfDays	//
)

类型

  • 布尔类型

  • 整型、浮点型、复数类型、字符串、字符类型

  • 数组

  • 数组切片

    数据结构:指向数组的指针、元素个数、存储空间

  mySlice1 := make([]int, 5)
  mySlice2 := make([]int, 5, 10)
  mySlice3 := []int{1,2,3,4,5}
  • map
  var myMap map[string] PersonInfo				//变量声明
  myMap = make(map[string] PersonInfo)			//创建
  myMap["1234"] = PersionInfo{"1", "Jack"}		//赋值
  delete(myMap, "1234")							//删除元素

  // 元素查找
  value, ok := myMap["1234"]
  if ok {
    //
  }

流程控制

条件语句

  if a < 5 {
  		retun 0
  } else {
  	return 1
  }

选择语句

  switch i {
    case 0:
    	fmt.Printf("0")
    case 1:
    	fmt.Printf("1")
    default:
    	fmt.Printf("Default")
  }

循环语句

  sum := 0
  for i := 0; i < 100; i++ {
  		sum += i
  }

函数

示例

  // 多个返回值
  func Add(a, b int)(ret int, err error) {
    	// ...
  }

  // 只有一个返回值
  func Add(a, b int) int {
    	//...
  }

  // 不定参数
  func myfunc(args ...int) {
    for _, arg := range args {
      	// ...
    }
  }

小写字母开头的函数只在本包内可见,大写字母开头的函数才能被其它包调用

posted @ 2017-11-21 19:50  fireflycmh  阅读(128)  评论(0编辑  收藏  举报