这是我参与「第五届青训营」笔记创作活动的第2天,今天总结的内容是主要针对昨天的课程--[Go 语言基础 - 基础语法],个人认为每天的内容需要进行一下回顾与梳理,但是可能当天没有办法完全梳理,故在第二天复习之时进行回顾梳理。而在这里我主要想讲一下Go语言的基础语法与其他语言 (主要是Python与C/C++) 的异同 。
Go语言的基础语法与其他语言的不同
输出语句的不同
Python
#示例
print("{:.2f}".format(1)) #输出格式化通过format函数实现
C/C++
printf("Hello world!"); //C
cout<<"Hello world!"<<endl; //C++
Go
fmt.Printf("hello world") //通过fmt标准库格式化输出
从上述可以看出Go语言的格式化输出是通过fmt标准库实现的,而且比较类似于C语言的printf。
详细来说,至少有如下几个函数需要知道:
| 作用 | 函数 |
|---|---|
| 格式化输出 | fmt.Printf(格式化样式, 参数列表…) |
| 格式化字符串 | fmt.Sprintf(格式化样式, 参数列表…) |
| 输出之后换行 | fmt.Println(字符串变量) |
变量声明语句的不同
Python
a=1 #无需声明变量,直接使用
C/C++
int number; //数据类型 变量名;
int number=1;
Go
var number int=1 //var 变量名 [显式指定数据类型]=变量值
number:=1 //变量名:=变量值
Go语言可以使用var进行自动推导,也可以使用数据类型显式指定的方式(这有点类似于Java与JavaScript)
流程控制语句的不同
循环结构
Go语言中只有for循环,故只考虑for循环,其实switch也可以使用,但其实实际使用中for循环基本可以解决99%问题,故此处只考虑for循环。而Go语言与其他两门语言都有相通之处,此处对比考虑
Python与Go(通过遍历结构遍历)
Python
for i in 遍历结构:
语句块
Go
for i := range 遍历结构{
执行语句
}
C/C++与Go
C/C++
for(int n=0 ; n<10 ; n++){
执行语句
}
Go
for n:=0 ; n<10 ; n++ {
执行语句
}
此处对比发现其实这两种for的结构分别与另外两种语言的for循环结构基本上对比一致,只有细微差别,在用的时候大家就会感觉到,就不进行进一步深入分析了。
条件结构
Python
if 判断条件:
执行语句
elif 判断条件:
执行语句
...
else:
执行语句
C/C++
if(判断条件){
执行语句
} else if(判断条件){
执行语句
} else{
执行语句
}
Go
if 判断条件{ //注意:此处没有括号
执行语句
} else if 判断条件{
执行语句
} else{
执行语句
}
可以看出Go条件结构与其他语言其实都相差不大,最类似于C/C++,所以个人觉得一门语言一定要学精,一门通门门通,很多语言都有相似之处,设计逻辑也有相同的地方,故一门语言学精以后学起其他语言也会比较轻松。
总结
以上就是今天主要想分享的几个内容,若是之后还有同学想继续看对比的话,我可以再多整理一些,其实各种语言都还是有相通之处的,作为一名主语言为Python的同学,我愿称Go为复杂版Python哈哈哈!