Go语言基础语法与其他语言的异同|青训营笔记

146 阅读3分钟

这是我参与「第五届青训营」笔记创作活动的第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哈哈哈!