HelloWorld
package main
import "fmt"
func main() {
fmt.Print("Hello World")
}
注释:
// 这是单行注释,可以给一行代码加注释
/*
这是多行注释,若果代码量比多,每行加注释,比较麻烦,可以使用多行注释
*/
/**
这是文档注释,和多行一样的效果
*/
变量:
变量命名规范要求:
- 小驼峰式命名:变量名、方法名
- 首字母小写,从第二个单词开始每个单词的首字母大写。
- 大驼峰式命名:类名,每个单词的首字母都大写。
- 命名最好可以做到见名知意 例如:username、studentNumber等。
变量定义格式:
var 变量名称 类型
var age int
变量赋值:
var age int = 23
fmt.Println(age)
// 变量之间赋值
var a int = 1
var b int = a
// 通过第三个变量交换两个变量的值
var num1 = 1
var num2 = 2
var temp = num1
num1 = num2
num2 = temp
fmt.Println("num1 = ", num1) // go的拼接是用的逗号,不可以使用加号
fmt.Println("num2 = ", num2)
自动推导类型:
在给变量赋值时,可以简化书写,不用通过var 声明变量,使用:
代替即可,会自动检测是什么类型
格式:
变量名 := 变量值 // 冒号和等号之间没有空格
演示:
num := 10
fmt.Println(num)
// 交换变量值
a := 1
b := 2
a, b = b, a
fmt.Println(a, b)
多重赋值:
一次性定义多个变量并赋值
格式:
变量1,变量2,变量3, := 值1,值2,值3
演示:
// 按照顺序给多个变量赋值
a, b, c := 1, 2, 3
fmt.Println(a, b, c)
输出格式:
Print():
输出但不换行
Println():
输出并换行
Printf():
输出不换行,可以指定输出的变量类型
a, b, c := 1, 2, 3
fmt.Print(a, b, c, "\n")
fmt.Println(a, b, c)
fmt.Printf("a = %d , b = %d , c = %d ", a, b, c)
键盘录入:
go的键盘录入和Java里的Scanner一样
Scanf():
需要指定接收的类型
Scan():
不需要指定接收的类型
func test01() {
var age int
fmt.Println("请输入您的年龄")
fmt.Scanf("%d", &age)
fmt.Println("age = ", age)
}
func test02() {
var age int
fmt.Println("请输入您的年龄")
fmt.Scan(&age)
fmt.Println("age = ", age)
fmt.Println(&age) //0x14000120008:内存地址
}
关键字:
关键字的特点:
数据类型:
类型 | 名称 | 长度 | 零值 | 说明 |
---|---|---|---|---|
bool | 布尔类型 | 1 | FALSE | 其值不为真即为假,不可以用数字代表true或false |
byte | 字节型 | 1 | 0 | uint8别名 |
rune | 字符类型 | 4 | 0 | 专用于存储unicode编码,等价于uint32 |
int, uint | 整型 | 4或8 | 0 | 有符号32位或无符号64位 |
int8 | 整型 | 1 | 0 | -128 ~ 127 |
uint8 | 整型 | 1 | 0 | 0 ~ 255 |
int16 | 整型 | 2 | 0 | -32768 ~ 32767 |
uint16 | 整型 | 2 | 0 | 0 ~ 65535 |
int32 | 整型 | 4 | 0 | -2147483648 到 2147483647 |
uint32 | 整型 | 4 | 0 | 0 到 4294967295(42亿) |
int64 | 整型 | 8 | 0 | 0 到 18446744073709551615(1844京) |
uint64 | 整型 | 8 | 0 | -9223372036854775808到 9223372036854775807 |
float32 | 浮点型 | 4 | 0.0 | 小数位精确到7位 |
float64 | 浮点型 | 8 | 0.0 | 小数位精确到15位 |
complex64 | 复数类型 | 8 | ||
complex128 | 复数类型 | 16 | 64 位实数和虚数 | |
uintptr | 整型 | 4或8 | ⾜以存储指针的uint32或uint64整数 | |
string | 字符串 | “” | utf-8字符串 |
整型:
- 有符号(int):正整数、负整数、0
- 无符号(uint):正整数、0
func test() {
var age uint = -10
println(age) // 报错,不支持负数
}
浮点类型:
演示:
func test02() {
var sum float64 = 123.456789
sum2 := 123.456789 // 如果使用的是自动推导类型,默认就是float64类型的
fmt.Printf("%f\n", sum) //123.456789
fmt.Printf("%.2f\n", sum) // 使用".数字"可以保留小数位数并四舍五入 123.46
fmt.Printf("%T", sum2) // float64 %T可以打印出变量的类型
}
布尔类型:
布尔类型的变量取值要么是true,要么是false,使用bool
关键字进行定义,默认值为true
var b bool = true
fmt.Println(b)
字符类型:
用单引号引起来的字符,单引号里只能有一个字符,数据类型为byte
点击查看ASCLL码表
//b := 'b'
var b byte = 'a'
fmt.Println(b) // 打印结果不是b,是98,
fmt.Printf("%c", b) // 打印结果是a,要打印自定义的字符要使用Printf
字符串类型:
用双引号引起来的,字符串中有一个隐藏的结束标志\0
//name := "itzhuzhu"
var name string = "itzhuzhu"
fmt.Printf("%T\n", name) // 打印字符串的数据类型
fmt.Println(name) // 打印字符串的数据值
fmt.Println(len(name)) // 打印字符串的长度,如果是中文的话,一个中文是3个字节