基础性知识介绍
- go语言的标准库不能多不能少 变量定义了就得用上 否则都会报错
- 当要用到花括号{}时 左边的{必须紧紧跟着 不能另起一行
- go中的
;
大多数情况下等于c+++中的,
0.变量
1 变量的声明与初始化
var <name> <type>
var a0 int//定义一个int型变量
var a1 int64//相当于long long
var b0 float32//相当于c++ float
var b1 float64//相当于c++ double
var array0 [110]int //定义一个数组
var array1 [...]int //使用 ... 让Go语言自己根据实际情况来分配空间
// ...其余大抵如此
/*---------初始化-------------------*/
var a int = 100
var b int = 200
var arr [3]int = [3]int{1,2,3}
b, a = a, b//这样写 还可以交换值
const pi float32 = 3.13159//常量初始化
var s1 string = ""
// 上下等价 下面的写法会自动判断类型
s2 := ""
1.输入
在go语言中我们可以通过fmt包中的这些方法来实现输入操作
fmt.Scan
fmt.Scanln
fmt.Scanf
1 读入一个数
var a,b,c int
fmt.Scan(&a)
fmt.Scanln(&b)
fmt.Scnaf("%d",&c)
2 读入两个数
var a1,a2,b1,b2,c1,c2 int
fmt.Scan(&a1,&a2)
fmt.Scanln(&b1,&b2)
fmt.Scanf("%d%d",&c1,&c2)
3 读入一个数组
var a [5]int
for i:=0;i<5;i++ {
fmt.Scanf("%d",&a[i])
fmt.Printf("%d\n",a[i])
}
5 读入一个二维数组
const n,m int= 3,4
var a [n][m]int
for i:=0;i<n;i++ {
for j:=0;j<m;j++ {
fmt.Scanf("%d ",&a[i][j])
fmt.Printf("%d",a[i][j])
}
fmt.Printf("\n")
}
6 读入一个字符串
文件整行读入 见此处
var s string
fmt.Scanf("%s",s)
fmt.Printf("%s",s)
7 输出
2.if-else
注意事项
当要用到大括号{}时 左边{的必须紧紧跟着 不能另起一行
1 if单分支
if (bool表达式) {
}
age:=24
if (age > 18){//当要用到大括号{}时 左边{的必须紧紧跟着 不能另起一行
fmt.Printf("是成年人\n")
}
student:=true
if (student) {
fmt.Printf("24岁,是学生\n")
}
man:=true
if (man && student){
fmt.Printf("24岁,是男学生\n")
}
2 if-else
var a,b,c int =1,2,3
if a<b && b<c {
fmt.Printf("升序")
} else if a>b && b>c {//else 要和上一个}在同一行
fmt.Printf("降序")
} else {
fmt.Printf("error\n")
}
3 if的高级写法
var man bool= true
if age:=24 ; age>18 && man{
fmt.Printf("是男大")
}
3 for
go没有提供while和do……while这两种循环,只提供了灵活的for循环机制
这是 for 循环的基本模型。
for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}
可以看到 for 后面,可以接三种类型的表达式。
1. 接一个条件表达式
2. 接三个表达式
3. 接一个 range 表达式
1 接一个条件表达式
for true {
fmt.Printf("能看到这句话说明循环结束了")
break;
}
2 接三个表达式
for i:=1;i<=10;i++ {
fmt.Printf("%d\n",i)
}
3 接一个range 表达式
遍历一个可迭代对象,是一个很常用的操作。在 Go 可以使用 for-range 的方式来实现。
range 后可接数组、切片,字符串等
由于 range 会返回两个值:索引和数据,若你后面的代码用不到索引,需要使用 _ 表示 。
var s string= "Hello,World!\n"
for idx,t:= range s {
fmt.Printf("%c%c",s[idx],t)
}
for idx:= range s {//如果你用一个变量来接收的话,接收到的是索引
fmt.Printf("%c",s[idx])
}
for _,t:= range s{
fmt.Printf("%c",t)
}
大佬能不能来点高难度的
就从佬这里学习go了