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定义变量,自动初始化为零值。如果提供初始化值,可省略变量类型,由编译器自动推断.
var x int
var f float32 =1.6
var s = "abc"
在函数内部,用更简略的 ":="方式定义变量
func main(){
x :=123 //注意这里是定义的局部变量还是修改全局变量
}
多变量赋值时,先计算所有相关值,然后再从左到右依次赋值
1.3变量
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"
*/
//
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通