在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、go语言简介
Go语言的吉祥物-金花鼠 1-1、Go语言的由来Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 Go语言的主要开发者有:肯.汤姆逊(Ken Thompson)、罗布.派克(Rob Pike)和罗伯特.格里泽默(Robert Griesemer)。 肯.汤姆逊(Ken Thompson):图灵奖得主,Uinx发明人,B语言作者(C语言前身),还做飞行员,后来被谷歌挖走。
罗布.派克(Rob Pike):Unix团队和Plan 9操作系统计划的成员,与Ken老爷子共事多年,并共创出广泛使用的UTF-8 字元编码。
罗伯特.格里泽默(Robert Griesemer):曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。
1-2、Go语言的开发背景
1-3、Go语言的特点、应用领域
应用领域
主要项目
二、Go 语言基础语法注释//这是单行注释
/*
这是多行注释1
这是多行注释2
这是多行注释3
*/
简单的示例package main
import "fmt"
var a int = 123
func main() {
fmt.Println(a)
}
/*
所有功能都是通过导包的形式调用,导入的包必须使用,否则会报错
package + 包名 表明当前文件属于哪个包
main包 表示当前文件属于项目根目录
包内的元素是共享的
首字母大写的变量可以被外部导入
一个项目只能有一个可执行文件
main() 它是一个项目的入口,运行项目其实就是运行main()
*/
关于go命令的路径
绝对路径:文件绝对路径
绝对路径:项目绝对路径 常用的4个go命令
-o:指定结果存放路径
编译的是可执行项目:结果放在bin下
代码格式化 变量先强调一点:在函数中的局部变量定义完之后,必须要使用,否则会报错。全局变量不存在该情况。 Go语言定义变量的5种方式: ① var 变量名1,变量名2 类型字面量(int,float64,bool,string)
② var 变量名1,变量名2 类型字面量 = 变量值1,变量值2
③ var 变量名1,变量名2 = 变量值1,变量值2 不定义字面量,系统会根据数据自动判断数据类型
④ a := 100 //短声明 ==>只能用在函数内部,无法用在全局
⑤ var ( 变量名1 字面量 = 变量值1 变量名2 字面量 = 变量值2 )
变量的赋值要求:类型要一致、支持多变量赋值、支持交叉赋值
一些必要的规范命名规则
变量命名规则
错误示例:UrlArray,应该写成urlArray或者URLArray 一些常见的特有名词:
// A GonicMapper that contains a list of common initialisms taken from golang/lint
var LintGonicMapper = GonicMapper{
"API": true,
"ASCII": true,
"CPU": true,
"CSS": true,
"DNS": true,
"EOF": true,
"GUID": true,
"HTML": true,
"HTTP": true,
"HTTPS": true,
"ID": true,
"IP": true,
"JSON": true,
"LHS": true,
"QPS": true,
"RAM": true,
"RHS": true,
"RPC": true,
"SLA": true,
"SMTP": true,
"SSH": true,
"TLS": true,
"TTL": true,
"UI": true,
"UID": true,
"UUID": true,
"URI": true,
"URL": true,
"UTF8": true,
"VM": true,
"XML": true,
"XSRF": true,
"XSS": true,
}
函数命名规则 结构体命名规则 接口命名规则 单个函数的接口名以”er”作为后缀,如Reader,Writer。接口的实现则去掉“er”。
type Reader interface {
Read(p []byte) (n int, err error)
}
//两个函数的接口名综合两个函数名
type WriteFlusher interface {
Write([]byte) (int, error)
Flush() error
}
//三个以上函数的接口名,抽象这个接口的功能,类似于结构体名
type Car interface {
Start([]byte)
Stop() error
Recover()
}
注释 // log包实现了常用的log相关的函数
package log
导出函数注释,第一条语句应该为一条概括语句,并且使用被声明的名字作为开头。
// 求a和b的和,返回sum.
func Myfunction(a, b int) (sum int){
}
常量 常量均需使用全部大写字母组成,并使用下划线分词:const APP_VER = “1.0” 如果是枚举类型的常量,需要先创建相应类型 Go语言中的常量首先:常量的内存读写权限位只读权限,也就是说常量定义了就无法更改 定义方式: 1.const 常量名 类型字面量 = 常量值 2.const 常量名 = 常量值 3.const ( 常量名1 = 值1 常量名2 = 值2 ) 常量组: 1 空常量的值和类型,与上方最近的变量值与类型一致 2 空常量的个数要与上方最近的非空常量一致 自增常量组:iota 从0开始计数 默认类型int 占位符 _ = iota iota参与运算 const (
_ = iota*3
a
b
c
)
中断与恢复 const(
_ = iota*3
a
b
c = iota
d
)
多个iota连用 const(
_,_ = iota,iota
a,b
c,d
)
自定义iota类型: const(
_float64 = iota
a
b
)
算数运算①变量一定义,它的数据类型是确定死了的,不能再变 ② 100 这样的整型数字存在自动转换为100.0 float64的情况 ③ 100.0 这样的float型数字存在自动转换为100 int的情况 ④同类型之间才能进行算数运算 ⑤算数运算支持十进制、二进制、十六进制 指针指针是存放内存地址的变量 var a=100
fmt.Println(&a) //0x00005680
var b = &a
fmt.Println(b) //*int int类型指针
获取指针的值方法:*b
|
请发表评论