go语言基础

一、go语言关键字:

1、常用关键字

break default func interface select case defer go map struct chan else goto 
const fallthrough if range type continue for import return var package switch

2、占位符

指针
%p 十六进制表示,前缀 0x Printf("%p", &people) 0x4f57f0
%v 相应值的默认格式。 Printf("%v", people) {zhangsan}
%T 相应值的类型的Go语法表示 Printf("%T", people) main.Human
%t true 或 false。 Printf("%t", true) true
%d 十进制表示 Printf("%d", 0x12) 18
%s 输出字符串表示(string类型或[]byte) Printf("%s", []byte("Go语言")) Go语言

3、指针

package main

import "fmt"

func main() {
   //指针取值
   a := 10
   var b = &a // 取变量a的地址,将指针保存到b中
   fmt.Printf("type of b:%T
", b)
   c := *b // 指针取值(根据指针去内存取值)
   fmt.Printf("type of c:%T
", c)
   fmt.Printf("value of c:%v
", c)
}

/*
输出:
type of b:*int
type of c:int
value of c:10
 

总结: 取地址操作符&和取值操作符*是一对互补操作符,&取出地址,*根据地址取出地址指向的值。变量、指针地址、指针变量、取地址、取值的相互关系和特性如下

1、 对变量进行取地址(&)操作,可以获得这个变量的指针变量。

2、 指针变量的值是指针地址。

3、 对指针变量进行取值(*)操作,可以获得指针变量指向的原变量的值。

二、变量

1、函数体外用var关键字进行全局变量的声明
2、type关键字进行结构(struct)或是接口(interface)的声明

三、函数

函数可见性规则
1、函数名小写开头即为private方法
2、函数名大写开头即为public方法

四、数组:

1、数组的定义:var 数组变量名 [元素数量]T

例1:var a [3]int

数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1,访问越界(下标在合法范围之外),则触发访问越界,会panic

2、初始化

func main() {
var testArray [3]int
var numArray = [...]int{1, 2}
var cityArray = [...]string{"北京", "上海", "深圳"}
fmt.Println(testArray) //[0 0 0]
fmt.Println(numArray) //[1 2]
fmt.Printf("type of numArray:%T
", numArray) //type of numArray:[2]int
fmt.Println(cityArray) //[北京 上海 深圳]
fmt.Printf("type of cityArray:%T
", cityArray) //type of cityArray:[3]string
}

3、数组的遍历

2种:

func main() {
var a = [...]string{"北京", "上海", "深圳"}
// 方法1:for循环遍历
for i := 0; i < len(a); i++ {
fmt.Println(a[i])
}

// 方法2:for range遍历
for index, value := range a {
fmt.Println(index, value)
}
}
原文地址:https://www.cnblogs.com/wuchangblog/p/14106106.html