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"
*/
//

posted @ 2022-12-17 23:32  junze101  阅读(265)  评论(0编辑  收藏  举报