输出hello world
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
编译
在程序所在目录下使用命令:go build
在其他路径下需要添加路径(src后边的路径):go build test.com\day01\helloworld
会生成相对于的exe文件,该文件可直接运行
指定生成目标名称:go build -o hello.exe
数据结构
package main // 声明包,main包编译后会生成exe文件,如果其他功能包比如说连接mysql,直接起相应的名字即可
import "fmt" // 引入包
// 函数外只能放标识符(变量、常量、函数、类型)的声明
var str string;
func main() { // 唯一入口
str = "hello world"
fmt.Println(str)
}
变量与常量
Go语言中的变量必选先声明后使用
变量声明
格式:
var 变量名 类型名称
声明变量必须要var开头,变量类型放到变量的后面,行尾无需分号,如:
var s1 string: 申明一个字符串类型的s1变量
批量声明
package main
import "fmt"
var ( // 批量声明及默认值,全局变量可以只声明不使用,函数里边声明的变量必须使用
a string // ''
b int // 0
c bool // false
)
func main() {
var d = "Runoob" // 非全局变量声明了就必须使用,要不然会报错,此处声明了d变量却没有使用,编译的时候会报错,无法编译成功。 此处声明变量可以不用定义类型
a = "张三"
b = 30
c = true
fmt.Print(c) // 直接打印
fmt.Printf("姓名:%s", a) // 占位符打印
fmt.Println(b) // 打印内容后追加换行符
}
短变量声明
变量名 := 值
package main
import "fmt"
func main() {
name := "张三" // 等同于 var name = "张三"
fmt.Printf("name:%s", name)
var name1 = "abc" // 类型推导
fmt.Println();
fmt.Println(name1);
}
匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用 匿名变量
,匿名变量用一个下划线_
表示,例如:
package main
import "fmt"
func main() {
x, _ := foo()
_, y := foo()
fmt.Println(x)
fmt.Println(y)
}
func foo() (int, string) {
return 10, "abc"
}
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。
注意事项:
1.函数外的每个语句都必须以关键字开始(var, const, func 等)
2.:=不能使用在函数外
3._多用于占位,表示忽略值