go语言摘记

基本法则:

1)在最外部声明的函数、类型、变量都要从其关键字开始。如func、type、var...

2)任何代码都要以包为单位封装和被调用。

3)大括号的前括号要在行末,后括号要另起一行行首。

4)函数内声明的临时变量必须要使用。如要放弃接收变量可使用_符号接收值表示忽略。

5)最外部声明的函数、类型、变量如果是首字母大写,表示公开,可被其他包使用。小写表示不公开。

 

一 包

1)包名顶行写:

package 包名

2)导入用import关键字,多个包可以使用符号()进行组合

import "包路径"

3)包名为包路径最后一段名字

 

一 变量

1)标准格式:

var 变量名 类型

2)声明时直接赋值可以省略类型,由其自动推导

3)声明时直接赋值可以省略var,使用:=符号简写。该语法仅能在函数内使用。因为与更高级别的法则冲突:在最外部声明的函数、类型、变量都要从其关键字开始。

 

二 函数

1)标准格式:

func 函数名(参数1 参数1类型, 参数2 参数2类型) (返回值 返回值类型) {

}

2)与声明变量相似的,参数、返回值的类型也要放在名称之后。这样做的理由是更易读,比如当复杂函数做参数传递时。

3)函数返回值可以多个。也可以给返回值变量命名。

 

三 结构

1)标准格式:

type 结构名 struct{

    成员变量名 类型,

    ....

}

2)结构的创建:省略成员名可以按顺序初始化;不省略名称则不需要顺序。

3)type可以用来给别的类型起别名。当然之后需要显式转型。

4)通过.操作符获取结构内的成员。

 

四 指针

1)go有指针类型,用*表示,*出现在类型前方。

2)go没有指针运算

3)获取变量的引用通过取地址符&获取。同理可以在类型创建的时候直接&获取其引用。

4)引用变量的值要通过 *变量名 获取,*出现在变量名前方。

5)如果是指针类型的结构,可以通过.操作符直接调用类型成员。(*p).Name和p.Name的效果相同。

 

五 方法

1)go没有类,但可以用类型作为函数的接收器实现结构的方法。本质上就是函数的第一个参数为该类型。

2)不能给除自身包之外的类型添加方法。

3)方法的语法结构:

func (接收器变量 接收器类型) 函数名(参数)返回值{

}

4)使用方法,就是在类型变量后面使用.操作符。

5)接收器可以是指针类型。因为go语言的传参本质就是拷贝,所以传递指针类型变量可以用于修改值。效果等同函数。

6)当使用指针类型接收器的时候,使用方法也可以直接通过.操作符。(*p).Add()和p.Add()的效果相同。

7)当接收器不是指针类型的时候,引用类型的变量也可以使用.操作符直接调用方法。但是要注意的是go的传参始终都是值拷贝。

8)上述特性与函数参数不同,函数参数类型必须与声明的参数类型一致,不然无法通过编译。

 

六 接口

 

posted @ 2020-09-30 17:02  陈惊蛰  阅读(181)  评论(0编辑  收藏  举报