1、package 别名的定义
示例一
import io “fmt”
func main(){
io.Println("hello world");
}
示例二
import (
io "fmt”
)
func main(){
io.Println("hello world");
}
2、package省略调用
import . “fmt”
示例二
import (
. "fmt”
)
func main(){
Println("hello world");
}
3、go的可见性规则
在代码中通过大小写来决定该常量、变量、类型、接口、结构或者函数是否可以被外部的包调用
首字母小写类似private
首字母大写类似public
4、代码结构
//当前程序的包名
package main
//引入所需要的包
import (
"fmt"
)
//常量定义
const PI = 3.14
//全局变量的声明与赋值
var name = "golang"
//一般类型声明
type newType int
//结构的声明
type golang struct{}
//接口的声明
type gopher interface{}
func main() {
fmt.Println("hello world")
}
5、使用组来定义常量、全局变量、一般类型,可简化代码,增强可读性
//常规常量定义
const PI = 3.14
const const1 = 1
const const2 = 2
//使用组进行声明
const(
PI = 3.14
const1 = 1
const2 = 2
)
//使用组声明全局变量
var (
name = "gopher"
name1 = "1"
name2 = "2"
)
//函数体内变量的声明
var a,b,c,d int
//使用组声明一般类型
type (
newType int
type1 float32
type2 string
type3 byte
)
6、go基本类型
bool {
长度:1字节
取值范围:true,false
注意:不可以用数字代表true或者false
}
整形 int/uint16{
他的长度跟运行的平台有关。32/64
}
8位整形:int8/uint8{
长度:1字节
取值范围:-128~127,0-255
}
字节型:byte(uint别名)
16位整形:int16/uint16 {
长度:2字节
取值范围:-32768~32767 / 0~65535
}
32位整形:int32/uint32 {
长度:4字节
取值范围:-2^32/2~2^32/2-1 / 0~2^32-1
}
64位整形 :int64 uint64 {
长度:8字节
取值范围:-2^64/2~2^64/2-1 / 0~2^64-1
}
浮点型:float32 float64{
长度:4/8字节
小数位:精确到7/15小数位
}
复数类型:complex64 complex128 {
长度:8/16字节
}
用于保存指针的整数型:uintptr
其它值类型:array struct string
引用类型:slice map chan(高并发使用,用于多个routine之间的信道)
接口类型:interface
函数型:func
7、类型零值:当声明没有初始值的变量,系统会默认给一个初始值
值类型为0,bool类型为false,string为空字符串
8、单个变量的声明与赋值
变量的声明格式:{
var <变量名称> <变量类型> 如: var A int
A = 123
主要用途:全局变量和局部变量。
}
声明的同时赋值:var <变量名称> <变量类型> = <表达式> 如:var A int = 123
由系统自己推断赋值:var A = 123 ,系统会自动推断A为 int类型
最简赋值:A := 123
9、变量的类型转换
Go中不存在隐式转换,必须显式,转换只能在两种相互兼容的类型之间。