开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
Hello world
代码
package main //包,表明代码所在的模块
import "fmt" //引入代码依赖
//功能实现
func main() {
fmt.Println("Hello, World!")
}
说明
-
应用程序入口:
- 必须是 main 包:package main
- 必须是 main 方法:func main()
- 文件名可以随意更改,不一定是 main.go
-
返回值
- main函数不支持返回值,错误如下
command-line-arguments
.\test_01.go:6:6: func main must have no arguments and no return values
- 通过 os.Exit 来返回状态,比如输入 os.Exit(-2),会显示
-
获取命令行参数
- main 函数不支持传⼊入参数,即 func main~~(String[] args)~~
- 在程序中直接通过 os.Args 获取命令⾏行行参数
数据类型
代码
package main
import "fmt"
func main() {
var i int = 10
fmt.Println(i)
}
// 方式一
var (
i int = 10
j int = 10
)
// 方式二
var i int = 10
// 方式三
var i = 10
// 方式四
var (
i = 10
j = 10
)
说明
- Go 中定义的变量必须使用,不然就无法通过编译,这样子可以防止定义了变量不使用的情况,导致内存浪费;与此同时,在程序运行的时候可以查看变量 i 的结果
-
整数类型
区别
有符号整型可以为负数、零和正数;无符号整型只能为零和正数
-
浮点数
float32 和 float64,float64比较常用,因为精度更高
float32 精确到小数点后面 6 位;float64 精确到小数点后面15位
package main
import "fmt"
func main() {
var f32 float32 = 2.2
var f64 float32 = 10.34569798786785765656579989
var f65 float64 = 10.34569798786785765656579989
fmt.Println("f32 is", f32, ", f64 is", f64, "f65 is", f65)
}
-
布尔型
package main
import "fmt"
func main() {
var bf bool = false
var bt bool = true
fmt.Println("bf is", bf, "bt is", bt)
}
很简单
-
字符串
字符串可以表示为任意的数据,也可以加起来
package main
import "fmt"
func main() {
//String
var s1 string = "hello"
var s2 string = "你好"
fmt.Println(s1, s2)
//字符串相加
fmt.Println(s1 + s2)
}
-
零
零其实是一个变量的默认值,在 Go 语言中,如果生命一个变量,没有对其进行初始化,那么 Go 语言会自动初始化其值为对应类型的零值。比如数字类型的零值为0,布尔型的零值为 false,字符串的零值为""空字符串
变量
它的出现主要是 var 关键字比较繁琐,所以 Go 提供了变量的简短声明 :=
然后通过=,也就是类似 i = 20 进行修改
package main
import "fmt"
func main() {
//变量
i := 10
j := "hello"
k := "world"
fmt.Println(i)
fmt.Println(j+k)
i = 20
fmt.Println(i)
}
指针
指针对应的是变量的内存地址,通过 & 获取指针,直接输出获得地址,加 *获得指针指向的变量值
package main
import "fmt"
func main() {
i := 10
pi := &i
fmt.Println(*pi)
fmt.Println(pi)
}
常量
常量的值在编译器就确定好了,不能修改。
常量只允许布尔型、字符串和数字类型
const name = "飞雪无情"
fmt.Println(name)
const (
one = 1
two = 2
three = 3
)
fmt.Println(one)
const (
one = iota + 1
two
three
four
)
fmt.Println(one, two, three, four)
转换
字符串和数字的转换
i2s:=strconv.Itoa(i)
s2i,err:=strconv.Atoi(i2s)
fmt.Println(i2s,s2i,err)
数字之间的转换
i2f:=float64(i)
f2i:=int(f64)
fmt.Println(i2f,f2i)