目录
Hello World!
变量和常量
变量交换
匿名变量
常量
iota——特殊常量
基本数据类型
数据类型转换
运算符
算数运算符
关系运算符
逻辑运算符
位运算符号
编辑
赋值运算符
输入输出方法
流程控制
函数
可变参数类型
值传递和引用传递
Hello World!
在电脑下载好GoLand后运行并创建一个go文件输入如下代码,导入一个系统包fmt用来输出。
这里的入口函数默认也是main函数。
import "fmt"func main() {fmt.Println("hello world")
}
变量和常量
定义变量使用var关键字
变量定义的标准格式如下,如果不指定值的话就是默认值,变量明明使用驼峰命名法。
var 变量名 变量类型var (name stringage intaddr string
)
import "fmt"func main() {var (name string = "北岭山脚鼠鼠"age int = 21addr string = "")
// 语法糖,可以自动推导类型,但必须是之前没有出现过的变量
name: ="北岭山"
age:= 21fmt.Println(name)
}
func main() {name := "北岭山脚鼠鼠"age := 21addr := ""fmt.Println(name, age, addr)fmt.Printf("name:%T,age:%T\n", name, age) //查看类型fmt.Printf("name:%s,age:%d\n", name, age) //获取值fmt.Printf("name:%p,age:%p", &name, &age) //获取地址}
变量交换
func main() {var a int = 100var b int = 200//传统交换//tmp := a//b = tmp//a = b//go交换a, b = b, afmt.Print(a, b)
}
匿名变量
可以用于接收任何类型的变量,但是后续都无法使用。
func test() (int, int) {return 100, 200
}func main() {a, _ := test()_, b := test()fmt.Print(a, b) //输出100,200
}
常量
类型:bool ,int ,float:32,float:64,string,复数型
把var 改成const就是常量的定义方式。
const url string = "www.yhy2002.com" //显式定义const url2 = "yhy2002.com" //隐式定义url3 := "hyh2002.com"const a,b,c="y","h","y"fmt.Print(url3)
iota——特殊常量
func main() {const (a = iotadeb = iotafc = iota)const (g=iota)fmt.Print(a, b, c,g)
}
得到结果如下
0,3,5,0
基本数据类型
整型如下有
别名
浮点数有如下
func main() {const (a bool = trueb int = 5c float64 = 5.2d string = "北岭山脚鼠鼠")fmt.Printf("%t,%d,%.6f,%s", a, b, c, d+d)
}
数据类型转换
并且只能由范围小的转到范围大的,大转小会有精度丢失
func main() {a := 3c := float64(a)fmt.Print(c)
}
运算符
算数运算符
关系运算符
逻辑运算符
位运算符号
赋值运算符
输入输出方法
var a intvar b float64fmt.Println() //打印并换行//fmt.Printf() //格式化输出fmt.Print() //打印输出//fmt.Scanln(&a, &b) //fmt.Scanf("%d,%f", &a, &b) //接收格式化输入 作业fmt.Scan(&a) //接收输入作业
流程控制
if 条件1 {}else if 条件2{}else {}switch 条件1{ //默认case最后自带breakcase 值1:fallthrough //不管下一个条件是否满足都会执行下一条语句case 值2:case 值3:default:}
for i:= 1;i<=5;i++{continuebreak}
//遍历stringstr := "abcd"len := len(str)for i := 0; i < len; i++ {fmt.Printf("%c", str[i])}for i, v := range str {fmt.Printf("%d,%c", i, v)}
函数
func get(a int, b string) (string,int){fmt.Printf("yhy")return "yhy",231
}
可变参数类型
func get(a ...int) (string, int) {fmt.Printf("yhy")return "yhy", 231
}
值传递和引用传递