0 简介
0.1 语言简介
0.2 快速入门
快速入门
package main
import "fmt"
func main() {
fmt.Println("hello xhh")
}
go build hello.go // [1] 编译
go build -o xhh.exe hello.go
hello.exe // [2] 运行
go run hello.go // 编译+运行
gofmt main.go // 格式化代码 并 显示
gofmt -w main.go // 格式化并写入
0.3 执行流程
0.4 语法要求
0.5 获取输入
func Scanf(format string, a ...interface{
}) (n int, err error)
func Scanln(a ...interface{
}) (n int, err error)
package main
import(
"fmt"
)
func main() {
// [1] Scanln
var inputStr string
fmt.Scanln(&inputStr)
fmt.Println("xhh input: ", inputStr)
// [2] Scanf
var name string
var age int
fmt.Println("please input name age ...")
fmt.Scanf("%s %d", &name, &age)
fmt.Println("xhh input: ", name, "--", age)
}
0.6 环境配置项目结构
-
配置环境变量
-
GOPATH(go的项目路径)
-
GOROOT(go的安装路径)
- 项目路径结构
1 数据类型
1.1 快速入门和注意事项
package main
import "fmt"
// 全局声明方式一
var mm1 = 99
var mm2 = "xhh"
// 全局声明方式二
var (
mm3 = 88
mm4 = "mcy"
)
func main() {
// [1] 声明+赋值
var i int
i = 1
// [2] 变量
var j int = 99;
fmt.Println("i = ", i, " j = ", j)
// [3] 自动类型推导 类python
var num2 = 3.14
// [4] 声明+定义 以冒号形式
// 等价于 var str2 string = "xhh"
str2 := "xhh"
fmt.Println("num2 : ", num2, " str2 : ", str2)
// [5] 多变量
var n1, n2, n3 int
fmt.Println(n1, n2, n3)
var nn, name, addr = 99, "mcy", "lc"
fmt.Println(nn, name, addr)
fmt.Println(mm1, mm2, mm3, mm4)
}
1.2 基本类型
-
int
-
uint
-
其他
-
类型和占用字节数
package main
import(
"fmt"
"unsafe"
)
func main() {
var num int32 = 18
// num value[18] type[int32] size[4]
fmt.Printf("num value[%d] type[%T] size[%d]", num, num, unsafe.Sizeof(num))
}
-
float
-
char
var c1 byte = 'a'
fmt.Printf("c = %c", c1)
- string
1.3 基本类型之间的转换
需要显示转换
var n1 int = 1
var n2 float32 = float32(n1)
-
与string之间的转换
-
【1】基本数据类型转string
fmt.Sprintf
package main
import(
"fmt"
_ "unsafe"
)
func main() {
var v1 int = 99
var v2 float64 = 3.14
var v3 bool = true
var v4 byte = 'a'
var str string
// [1] fmt.Sprintf
str = fmt.Sprintf("[%d]-[%f]-[%t]-[%c]", v1, v2, v3, v4)
// str: [99]-[3.140000]-[true]-[a] type[string]
fmt.Printf("str: %v type[%T]", str, str)
}
strconv
func Itoa(i int) string
- 【2】string转基本数据类型
strconv包
func ParseBool(str string) (value bool, err error)
func ParseInt(s string, base int, bitSize int) (i int64, err error)
func ParseUint(s string, base int, bitSize int) (n uint64, err error)
func ParseFloat(s string, bitSize int) (f float64, err error)
1.4 指针、值类型和引用类型
-
简介
-
值类型和引用类型
- 保留字