# go_study **Repository Path**: v8sj/go_study ## Basic Information - **Project Name**: go_study - **Description**: 自己学习go的练习代码 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-07 - **Last Updated**: 2022-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Go语言入门知识点总结 ### **Go语言基本语法** **包** 1. package 1. import 1. 从main包的main方法开始 1. 没有public、protected、private等访问控制修饰符,它是通过字母大小写来控制可见性的,如果定义的常量、变量、类型、接口、结构、函数等的名称是大写字母开头表示能被其它包访问或调用(相当于public),非大写开头就只能在包内使用(相当于private,变量或常量也可以下划线开头) 1. 根据文件路径来判断包 **函数** 1. 当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。 x, y int 1. 多值返回 `a,b := 4,5` 1. 命名返回值 `func split(sum int) (x, y int)` **var变量** 可以出现在包的级别,也可以出现在func里可以一起初始化,可以不指定类型 var java, c, test = 1, "dfer", true 简洁赋值语句 := 可在类型明确的地方代替 var 声明。但不能出现在函数外 const 常量类型 基本类型 bool string int int8 int16 int 32 int64 uint uint8 uint16 uint32 uint64 uintptr byte == uint8 rune == int32表示一个unicode码点 float32 float64 complex64 complex128 类型自动推导 类型转换 流程控制 Go 在不同类型的项之间赋值时需要显式转换。 string转成int int, err := strconv.Atoi(str) int -> string string := strconv.Itoa(int) string -> []byte var data []byte = []byte(str) []byte -> string var str string = string(data[:]) float64 <-> string float,err := strconv.ParseFloat(string,64) string := strconv.FormatFloat(float64,'E',-1,64) 只有一种循环结构 for for ; sum < 1000; {} for sum < 1000 跟其他语言的while一模一样 for {} 死循环 for index, value := range arrOrMap { } for _,value := rang arrOrMap{} 用_忽略index或者值 if else if 也可以在执行判断前,先执行一个语句 if z:=x+y; z