这是我参与「第五届青训营 」笔记创作活动的第1天
在学习go之前很想谈一下我之前对go的看法,之前我一直跟着同龄人中的多数人学习java,c,python这些常用,之所以没学go呢是因为我接收了身边人的建议(go程序员只要有工作经验的老程序员,现在学会没什么用),现在报了青训营是因为百听不如一见,现在我就要去看看他的庐山真面貌,哈哈哈,i'm coming go.😉😉😉
一.基础语法
1.Hello World
老样子,每门语言的开门红都是Hello World! 但在输出之前需要配置环境变量,呜呜呜!下面开始配置环境变量。 现在官网下载go,这里我下载了1.19版本,然后用户配置环境变量,这里我下载到了F盘,然后再下载 GoLand,下载好之后再配置系统环境变量,GOROOT,GOPATH如何配置网上都有,这里就不详细展开啦!😀😀😀 接下来最激动人心的时刻!
package main
import "fmt"
func main() {
fmt.Print("Hello Goland!")
}
哈哈哈,输出Hello World!的一瞬间我悬着的心得到安抚,环境变量配置成功,一次通过!🎉🎉🎉
这里提一下输出的三种形式:
fmt.Print普通输出,可以多个变量,用逗号隔开fmt.Println换行输出fmt.Printf格式输出- 奇怪的是我不小心用了python的
print居然没报错居然还能运行,还有println,什么用途暂时还没搞清楚
2.变量
课后总结后我发现go的变量命名有三种(准确来说应该是两种,这里有一个常量命名)
- var 变量名 [变量数据类型] = 值
- 变量名 := 值
- const 变量名 [变量数据类型] = 值
var a int = 21
name := "Mao XiaoCheng"
const school = "TYUT"
fmt.Print("My name is ", name, ".I'm ", a, ".My university is ", school)
- 首先这里变量的类型var和const可有可无(基本数据类型例如int,string这些,其它的还没学到),:= 简短型貌似没有数据类型。
- 然后这里发现了输出的两种形式、
fmt.Print和fmt.Println区别很明显,一个是换行一个是不换行,许久未用过Println的我想起了java。 - 还有一点就是我发现
fmt.Println不仅的换行是在整个语句后加一个换行,就算你在Println后没有输出语句它仍然会输出一个空行。 - 还有就是一个输出语句如果使用 , 拼接多个变量的话使用Println会在每个变量后面补一个空格,上网查了一下是值+空格 输出
- 额,3,4点暂时有点想不明白为什么要这样,感觉多此一举或者用习惯了python突然有点无法接收😥😥😥
- 还有在GoLand里面如果输出语句()里第一个变量前面未定义,会在语句前加一个
a...:,猜测是简短变量命名,具体是什么不知道,应该学到后面就知道了
3.if循环
直接分析代码
if a >= 18 {
fmt.Println("I'm an adult.")
} else {
fmt.Print("I'm not an adult.")
}
if num := 6; num%2 == 0 {
fmt.Println(num, "是偶数")
} else {
fmt.Println(num, "是奇数")
}
- 语法形式与其它语言大同小异,这里if语句后不加(),加了也不会报错
- if语句内容不可写到一行,需要换行
- 有个很新奇的是可以在if后命名变量,有点for语句的味道,有点意思,阿巴阿巴
- 其它的也不多写了,还有代码没有else if,是有这个的哦,和其它语言一样的嗷
4.循环语句
看小标题就很特别,不是for循环不是while循环而是循环🧐,咱们往下看
j := 0
for {
println(6)
break
}
for i := 1; i <= 3; i++ {
print(6)
}
for j <= 3 {
fmt.Println(j)
j++
}
- 和其它语言大多相同的是都有的for后的三大宝,依旧是分号和中间的不能省略
- 和其它语言不同的是循环语句没有while,用for代替了
- 和js一样很特别的for循环,多样性
- 然后break和continue和其它也一样
5.switch语句
这个就更加特别了,咱还是先看代码
b := 2
switch b {
case 1:
fmt.Println(1)
case 2:
fmt.Println(2)
default:
fmt.Println(3)
}
t := time.Now()
switch {
case t.Hour() > 20:
fmt.Println("It's night now.")
default:
fmt.Println("It's not night now.")
}
- 第一个和其它一样,没什么特别,相对于c就是b不加()
- 第二个就很特别,switch后面可以不给变量,并且case后面可以跟任意变量,那时学c的时候就苦恼于case后面的变量太局限性,无奈写了很繁琐的if语句
- 别的暂时没有发现,然后就是学了一个time,获取系统时间,也是规规矩矩没什么很特别,不过我很喜欢简洁至上
今日总结:
今天没有学很多,不过已经发现go的独树一帜,这个语言很特别,就比如它省略了while循环而是用for代替,它的switch语句可以使用更多变量类型,更加开放性,还有变量命名也很特别,其它数据类型再变量名后前面,它却在后面。。。很多让人意想不到的惊喜,因为刚接触没很多知识上的总结。
我只想说一句,go很惊艳,也很大胆,突然很期待我与go的奇幻之旅,后续请关注下集!
瑞思拜😮😮😮