Junze101

Go

junze·2022-12-17 23:32·269 次阅读

Go

一、类型#

1.1介绍

/bin :包含可执行文件,如:编译器,Go 工具
/doc :包含示例程序,代码工具,本地文档等
/lib :包含文档模版
/misc :包含与支持 Go 编辑器有关的配置文件以及 cgo 的示例
/os_arch :包含标准库的包的对象文件( .a )
/src :包含源代码构建脚本和标准库的包的完整源代码(Go 是一门开源语言)
/src/cmd :包含 Go 和 C 的编译器和命令行脚本

运行:尽管 Go 编译器产生的是本地可执行代码,这些代码仍旧运行在 Go 的 runtime(这部分的代码可以在 runtime
包中找到)当中。这个 runtime 类似 Java 和 .NET 语言所用到的虚拟机,它负责管理包括内存分配、垃圾回收
(第 10.8 节)、栈处理、goroutine、channel、切片(slice)、map 和反射(reflection)等等。
runtime 主要由 C 语言编写(Go 1.5 开始自举),并且是每个 Go 包的最顶级包。你可以在目录
$GOROOT/src/runtime 中找到相关内容。

1.2类型

使用关键字var定义变量,自动初始化为零值。如果提供初始化值,可省略变量类型,由编译器自动推断.

Copy
var x int var f float32 =1.6 var s = "abc"

在函数内部,用更简略的 ":="方式定义变量

Copy
func main(){ x :=123 //注意这里是定义的局部变量还是修改全局变量 }

多变量赋值时,先计算所有相关值,然后再从左到右依次赋值

1.3变量
Copy
package main import "fmt" var ( aa = 3 ss = "kkk" bb = true ) //<:=>无法在函数外定义变量":=" xxvar bb := bb func variableZeroValue() { var a int var s string fmt.Printf("%d %q\n", a, s) } func variableInitialValue() { var a, b int = 3, 4 var s string = "abc" fmt.Println(a, b, s) } func variableTypeDeduction() { var a, b, c, s = 3, 4, true, "def" fmt.Println(a, b, c, s) } func variableShorter() { a, b, c, s := 3, 4, true, "def" b = 5 fmt.Println(a, b, c, s) } func main() { fmt.Println("hello world") variableZeroValue() variableInitialValue() variableTypeDeduction() variableShorter() fmt.Println(aa, ss, bb) } //var 关键字 定义变量 -->可放在函数内,或可直接放在包里 ,使用var()集中定义变量 // <:=>使用:=定义变量 ,只能在函数内使用,函数外不能。a := "hello" /* 编译器一般可以自动决定类型: var a,b,i,s1,s2=true,false,3,"hello","world" */ //
posted @   junze101  阅读(269)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
目录