goland基础知识要点

雨中笑 goland 696热度

最近一段时间在整理下go的知识点,此篇为基础知识要点。

package main

import "fmt"

func main() {
fmt.Println("hello, world")
}

一、基本结构和类型

1、每个应用程序都包含一个名为 main 的包,所有的包名都应该使用小写字母,main 函数是每一个可执行程序所必须包含的,main 函数没有参数,也没有返回类型。

2、如 "fmt" 或者 "container/list",则 Go 会在全局文件进行查找;如果包名以 ./ 开头,则 Go 会在相对目录中查找;如果包名以 / 开头(在 Windows 下也可以这样使用),则会在系统的绝对路径中查找。导入包即等同于包含了这个包的所有的代码对象接

3、当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 private )。

4、只有当某个函数需要被外部包调用的时候才使用大写字母开头

5、类型的转换,当从一个取值范围较大的转换到取值范围较小的类型时(例如将 int32 转换为 int16 或将 float32 转换为 int),会发生精度丢失(截断)的情况,会引发编译时错误。

6、常量使用关键字 const 定义,用于存储不会改变的数据。常量的值必须是能够在编译时就能够确定的,常量还可以用作枚举,iota 可以被用作枚举值,每当 iota 在新的一行被使用时,它的值都会自动加 1。

7、声明变量的一般形式是使用 var 关键字:var identifier type。声明变量时将变量的类型放在变量的名称之后。当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil。记住,所有的内存在 Go 中都是经过初始化的,变量的命名规则遵循骆驼命名法,即首个单词小写,每个新单词的首字母大写,例如:numShips 和 startDate

但如果你的全局变量希望能够被外部包所使用,则需要将首个单词的首字母也大写

当你在函数体内声明局部变量时,应使用简短声明语法 :=  a := 1

---------20201214---------

不记载太详细的了,就记载自己觉得需要注意的点了

1、if中使用简短方式 := 声明的变量的作用域只存在于 if 结构中

package main

import "fmt"

func main() {
var cond int =1

if cond := 5; cond < 10 {
fmt.Printf("cond is greater than 10\n")
} else {
fmt.Printf("cond is not greater than 10\n")
}
fmt.Println(cond)
} //输出

cond is greater than 10
1

2、使用 * 符号打印宽为 20,高为 10 的矩形。

package main

func main() {
h := 10
w := 20
for i := 1; i <= h; i++ {
for j := 1; j <= w ; j++ {
if j == 1 {
print("*")
}else if j == w {
print("*")
}else {
switch i {
case 1,h:
print("*")
default:
print(" ")
}
}
}
println()
}
}

3、关键字 defer 允许我们进行一些函数执行完成后的收尾工

4、new 函数分配内存,make 函数初始化



---------20211103---------

发现以前自己一年前还写了篇这么基础的知识要点,但是写得不全哈哈,文档还是不能在主站里写,不方便,现在自己开了个专门记载go文档,目前也还在继续完善


很赞哦!(1)

本文阅读量 2554发布于 2020年11月5日

您的访问IP 3.22.225.224最早于 2024年5月15日 6时53分09秒 阅读过本文 为本文提供了 1 热度 1 阅读量

文章评论
回帖