golang学习笔记

golang学习笔记

基本语法

关键字(key word) && 变量

  • 关键字
    golang仅有25个关键字,如下:
var     import    type    return    const
if      else      for     range     break
select  default   goto    switch    fallthrough
func    interface case    chan      continue
defer   go        map     struct    package   
  • 变量声明&&初始化&&赋值
    golang变量声明方式与C/C++系语言有明显不同,对于golang这种声明方式知乎上有讨论为什么 Go 语言把类型放在后面?
    golang引入var关键字,类型信息放在变量名之后。
var n int // 定义一个int变量
var f float32
var str string // 定义一个string变量
var arr [10]int // 数组
var m map[int]int // map
var p *int // pointer

var n int = 10 //定义并初始化
var n = 10 
n := 10 // 效果样,可以自动推到n类型

n = 100 // 赋值
n2 := n // 定义并初始化

// ……

由上面示例可以看出,golang语句不需要分号作结束符,而且定义一个变量是被初始化的一般默认值是0,而指针是nilstring""

package main

import "fmt"

func main() {
	var n int
	fmt.Println("int: ", n)
	var f float32
	fmt.Println("float: ", f)
	var str string
	fmt.Println("string: ", str)
	var arr [10]int
	fmt.Printf("array: ")
	for i := 0; i < len(arr); i++ {
		fmt.Printf("%d ", arr[i])
	}
	fmt.Println()
	var p *int
	fmt.Println("*int: ", p)
}
/*
output:
int:  0
float:  0
string:
array: 0 0 0 0 0 0 0 0 0 0
*int:  <nil>
*/

类型(type)

golang中内置基础类型

  • boolean
  • int8、byte、int16、int、uint、uintptr
  • float32、float64
  • complex64、complex128
  • string
  • rune
  • error

复合类型

  • 数组(array)
  • 字典(map)
  • 切片(slice)
  • 结构体(struct)
  • 通道(chan)
  • 接口(interface)
  • 指针(pointer)
  • 引用(reference)

流程控制(flow control)

  • 条件语句
    if else
  • 选择语句
    switch case select
  • 循环语句
    for range
  • 跳转语句
    goto

函数(function) && 包(package)

  • 函数定义
func func_name() {
	
}
  • 函数调用
  • 不定参数
  • 多返回值
  • 匿名函数&&闭包
  • 包管理

面向对象

  • 方法(method)
  • 匿名字段
  • 接口(interface)
posted @ 2016-06-05 14:37  notfound1211  阅读(274)  评论(0编辑  收藏  举报