一,golang入门基础
信息 | 内容 |
---|---|
编号 | dev-2020-001 |
版本 | v1.0 |
状态 | 维护中 |
更新 | 2020-03-17 |
修改日期 | 修改内容 | 版本 | 作者 |
---|---|---|---|
2020-03-17 | 新创建 | v1.0 | adsda |
1 简单章节
helloword。
例:
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
1.1 程序运行及编译:
直接运行程序
go run hello-world.go
编译为二进制文件
go build hello-world.go
1.2 简单代码
计算代码:
package main
import "fmt"
func main() {
fmt.Println("name")
fmt.Println(9.0/4.0)//加小数据显示,不加四舍五入
fmt.Println(9.0/4.0)
fmt.Println("go" + "lang")//完美拼接字符串
fmt.Println(true && false)
fmt.Println(true || false)
fmt.Println(!true)
}
计算一共有: 加减乘除等(待补充);
。
if else 代码:
赋值可以与判断写在一起:
if num := -2; num < 0 {
fmt.Println(num, "is negative")
} else if num > 10 {
fmt.Println(num, "has 1 digit")
} else {
fmt.Println(num, "has multiple digits")
}
同理的switch代码:
一个基本的 switch
i := 2
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
}
带入参数的 switch:
package main
import "fmt"
import "time"
func main() {
t := time.Now()
fmt.Println(time.Now().Hour)
fmt.Println(t.Hour)
switch {
case t.Hour() < 12:
fmt.Println("it's before noon")
default:
fmt.Println("it's after noon")
}
}
数组
普通数组:
package main
import "fmt"
func main() {
//创建数组,初始为0
var a [5]int
fmt.Println(a)
//对数组指定位置赋值
a[3] = 100
fmt.Println(a)
//批量赋值
b :=[5]int{1,2,3,4,5}
fmt.Println(b)
//添加多组数组
var c [3][4] int
fmt.Println(c)
*==**//这个代码有点看不懂,以后回顾**==*
for i := 0; i <3 ; i++{
for j := 0; j < 4; j++ {
c[i][j] = i + j
}
}
fmt.Println(c)
}
切片Slice是 Go 中一个关键的数据类型,是一个比数组更加强大的序列接口:
package main
import "fmt"
func main() {
//使用内建的方法 `make`。这里我们创建了一个长度为3的 `string` 类型 slice(初始化为零值)
s := make([]string ,3)
fmt.Println(s)
s[0]="1"
s[1]="2"
s[2]="3"
fmt.Println(s)
//或者
t := []string{"g","h","i"}
fmt.Println("t:" ,t)
//append新增值
s = append(s,"4","5")
fmt.Println(s)
//复制其他数组数据
c := make([]string ,6)
copy(c,s)
fmt.Println(c)
//或者选择某段区间
l := c[2:5] //指针选
m := c[:5] //区域选,前
n := c[2:] //区域性,后
fmt.Println("l:",l ,"m:",m,"n:",n)
//支持多组
*==**//这个代码有点看不懂,以后回顾**==*
twos :=make([][]int ,3)
fmt.Println(twos)
for i:=0 ;i<3; i++{
innn := i+1
twos[i]=make([]int,innn)
for j :=0;j<innn;j++{
twos[i][j]=i+j
}
}
fmt.Println(twos)
}
字典,也叫管理数组
package main
import "fmt"
func main() {
m :=make(map[string]int)
m["1"]=7
m["2"]=17
fmt.Println(m)
//for循环添加值
for i := 0; i < 7; i++ {
m[fmt.Sprintf("%d",i)]=i+1
}
fmt.Println(m)
//设置某个键值对
m1 :=m["1"]
fmt.Println(m1)
//显示键值对的数量
fmt.Println(len(m))
//删除键值对
delete (m ,"4")
fmt.Println(m)
//分析是否有值
_, aa :=m["3"]
fmt.Println(aa)
//初始化赋值
n := map[string]int {"sss":1,"aaa":2}
fmt.Println(n)
}
range 遍历
package main
import "fmt"
func main() {
//初始化赋值
nums := [3]int{2,3,4}
fmt.Println(nums)
//遍历统计总和
ii :=0
for _,i:= range nums{//显示总数,所以用_取消索引选择
ii +=i
}
fmt.Println(ii)
//显示索引,a即为对应索引,i即为索引对应的值
for a,i := range nums{
if a==2{
fmt.Println(i)
}
}
//通过range显示map键值对
aa := map[string]string{"a":"a1","b":"b1"}
for i,a:=range aa{
fmt.Println(i,a)
}
//迭代Unicode编码,显示
for i ,a:=range "go"{
fmt.Println(i,a)
}
}
2 内置函数
//字段长度
fmt.Println("len:", len(s))
网友评论