Go语言基础
目录
一、HelloWorld!
1、go的注释
// 这就是go的注释,和js一样
// 单行注释
/*
多行注释
多行注释
*/
2、go的hello world
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
3、go代码的结构
package main
每一个 Go 文件都应该在开头进行 package name 的声明(注意:只有可执行程序的包名应当为 main)。
包(Packages)用于代码的封装与重用,这里的包名称是main
。
import "fmt"
我们引入了 fmt 包,用于在 main 函数里面打印文本到标准输出。
func main() {}
main 是一个特殊的函数。整个程序就是从 main 函数开始运行的。main 函数必须放置在 main 包中。{
和 }
分别表示 main 函数的开始和结束部分。
fmt.Println("Hello World")
fmt 包中的 Println 函数用于把文本写入标准输出。
4、go代码的运行
有三种方法:
1 goland上点击右键 Run 就可以执行
(仅限于goland。 vs code等其他编辑器都没有)
2 先编译,再执行。
正统的用法(go是编译型语言):用命令
编译:go build 文件名.go
编译,编译成当前平台的可执行文件 s1.exe
执行:s1.exe
3 编译并执行(在vs code上的命令窗口下执行go文件)
go run 文件名.go
相当于2中的所有步骤一次执行,不产生可执行文件s1.exe
二、变量
定义变量注意点:
- 变量命名推荐用驼峰体。
- 变量定义了必须使用,否则报错(只有go要求这样)。
- 查看变量类型
fmt.Printf("%T",变量)
。 - 变量要先定义再使用。
- 变量类型是固定的,不允许中途改变(静态语言)。
- 如果只是定义变量,必须指定类型,只能用第一种定义方式。
- 变量不允许重复定义。
1、定义变量的方法
1.1 全定义
var(关键字) 变量名 变量类型 = 变量值
var a int = 10
fmt.Println(a) //10
fmt.Printf("%T",a) //int
1.2 类型推导
var(关键字) 变量名 = 变量值
var a = 10
fmt.Println(a) //10
fmt.Printf("%T",a) //int
1.3 简略声明
变量名 := 变量值
a := 10.5
fmt.Println(a) //10.5
fmt.Printf("%T",a) //float64
2、声明变量不赋值
var b int
b = 10
fmt.Println(b) // 0 int默认是0
3、声明多个变量
// 下面三种都可以
//var a,b,c int = 123,234,345
//var a,b,c = 123,234,345
var a,b,c = 123,234,"字符c"
fmt.Println(a,b,c) //123 234 字符c
fmt.Printf("%T,%T,%T",a,b,c) //int,int,string
4、变量不能重复定义
var a int
//var a = 90 // 重复定义×
//a := 80 // 重复定义×
a = 70
fmt.Println(a)
//特殊情况
var a int
//var a, b = 10, 20 //不可以
a,b := 10,20 //可以
fmt.Println(a,b)
三、变量类型
Go 支持的基本类型:数字,字符串,布尔
1、bool(布尔类型)
true,false(都是小写)。
bool类型默认值为false。
//var a bool = true
var a = false
fmt.Println(a)
2、数字类型
2.1 有符号整型
int8, int16, int32, int64, int
rune:特指int32
int类型默认值为0。
-int8:表示能存储的长度 8个比特位,8个小格,一个格只能放0和1,能表示的范围是:正的2的七次方-1到,负的2的7次方-1
-int16,32...类推
-int:在32位机器上,表示int32,在64位机器上表示int64
-python中int类型,远远比go的int64大,大很多,因为python中一切皆对象,int对象包含方法数据,所以大。
2.2 无符号整型(正整数)
uint8, uint16, uint32, uint64, uint
byte:特指uint8
-uint8:范围:正2的8次方减一,有个0
2.3 浮点数(小数)
float32, float64
2.4 复数
高等数学用得到,实部和虚部。
complex64, complex128
3、字符串
字符串用双引号表示。反引号可以表示多行的字符串。
单引号和三引号不行。
单引号会将内部字符转成ascii码输出。
字符串类型默认值为""(空)
。
var name = "donner"
fmt.Println(name) //donner
a := 'a'
fmt.Println(a) //97
fmt.Printf("%T",a) //int32
4、interface
interface{}是所有类型的鼻祖。所有类型都属于interface{} 类型。
它属于接口,匿名空接口
四、常量
必须用const
关键字定义常量。
常量不能用:=
赋值。
不能用
const name = "trump"
//name = "asd"
fmt.Println(name)
// 同时定义多个常量
const name,age = "donner",18
fmt.Println(name,age)