这是我参与第五届青训营办学笔记创作活动的第1天。
我学习了go语言的语法基础,对于一个有c++基础的学生,学起go来还是比较轻松的,但是由于进度较快还算是不太熟练,还需要巩固一下,多尝试写go语言代码。
go语言的优点:1.高性能,高并发 2.语法简单 3.丰富的标准库 4.完善的工具链 5.静态链接 6.快速编译 7.可以跨平台 8.垃圾回收
go的安装与环境配置
1.首先下载go语言,进入网址(go语言下载) 2.配置go语言安装环境,我下载的是vscode(vscode下载地址) 3.可以配置环境变量(GOPROXY.IO - 一个全球代理 为 Go 模块而生) 4.安装好vscode后需要安装go插件 5.创建项目后可以打开终端输入go mod init www.github.com/用户名/项目名称 以此创建go模块。
初识helloworld
package main
import "fmt"
func main(){
fmt.Println("hello world!")
}
变量与常量的初始化
变量
var a = "hello world"
var b, c int = 1, 2
var d = false
var e float64
f := float32(e)
g := a + "hello" //字符串可以直接相加
常量 需要添加const关键字
const s string = "helloworld"
const t = 100
if-else语句,switch语句,for循环语句(go中没有while循环语句)
if-else语句
这里if-else语句,和c++不同的是:写完if后的条件判断无需加括号,以及后面必须接大括号而不像c++可以写在一行内。
package main
import "fmt"
func main(){
if 7%2==0 {
fmt.Println("7是偶数")
}
else {
fmt.Println("7是奇数")
}
}
switch语句
switch语句,go与c++的区别在于每写完一种情况后无需加break,它会自动停止。
package main
import "fmt"
func main(){
a:=3
switch a {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
case 3, 4:
fmt.Println("3 or 4")
default:
fmt.Println("other)
}
}
for循环语句:
for循环语句和if-else语句一样不需要加小括号。支持break和continue语句。
for j:=1; j<=10; j++ {
fmt.Println(j)
}
数组与切片
数组的定义
//一维数组
var a [5]int
//二维数组
var b [2][3]int
切片
用make([]类型,长度)创建,可以用append()进行添加
s := make([]string, 3)
s[0]='a'
s[1]='b'
s[2]='c'
s = append(s,'d')
s = append(s,'e', 'f')
c = make([]string,len(s))
copy(c,s)
fmt.Println(s[2:5]) //左闭右开
fmt.Println(s[:5]) //表示从0开始
fmt.Println(s[2:]) //表示从下标2的开始到结束
map用法
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
r, ok = m["unknown"] //r=0,ok=false 表示map中没有unknown
函数
函数声明和参数中的数据类型都是放在后面的
func add(a int,b int) int{
return a + b
}
func add2(a, b int) int{
return a + b
}
结构体
结构体定义及结构体方法
type user struct{
name string
password string
}
func (u user) checkpassword (password string) bool{
return u.password == password
}
func (u *user) resetpassword (password string){
u.password == password
}
这里只记了一些基础的语法知识,也是我青训营第一天的学习内容。