Go 语言和 C 语言异同
优质
小牛编辑
186浏览
2023-12-01
Go 语言程序组成
- 和C语言程序一样,Go语言程序也是由众多函数组成的
- 和C语言程序一样,程序运行时系统会自动调用名称叫做 main 的函数
- 和C语言程序一样,如果一个程序没有主函数,则这个程序不具备运行能力
- 和C语言程序一样,一个 Go 语言程序有且只能有一个主函数
Go 语言程序主函数定义格式
C 语言 main 函数格式
int main(int argc, const char * argv[]) { return 0; }
Go 语言 main 函数格式
- func 告诉系统这是一个函数
- main 主函数固定名称
- 函数左括号必须和函数名在同一行
- main 函数必须在 main 包中
// 告诉系统当前编写的代码属于哪个包 package main // 定义了一个名称叫做main的函数 func main() { }
Go 语言 HelloWorld
package main // 告诉系统当前代码属于main这个包 import "fmt" // 导入打印函数对应的fmt包 func main() { // 通过包名.函数名称的方式, 利用fmt包中的打印函数输出语句 fmt.Println("Hello World!!!") }
Go 语言 HelloWorld 和 C 语言 HelloWorld 异同
1.文件类型不同
- C 语言代码保存在 .c 为后缀的文件中
- Go 语言代码保存在 .go 为后缀的文件中
2.代码管理方式不同
C 语言程序用文件的方式管理代码
C 语言会把不同类型的代码放到不同的 .c 文件中,然后再编写对应的.h文件
需要使用时直接通过 #include 导入对应文件的.h文件即可
Go 语言程序用包的形式管理代码
我们会把不同类型的代码放到不同的 .go 文件中,然后通过 package 给该文件指定一个包名
需要使用时直接通过 import 导入对应的包名即可
3.main 函数书写文件不同
- C语言中 main 函数可以写在任意文件中, 只要保证一个程序只有一个main函数即可
- Go语言中main函数只能写在包名为main的文件夹中, 同样需要保存一个程序只有一个main函数
4.函数编写的格式不同
C语言中函数的格式为
注意:C语言函数的左括号可以和函数名称在同一行,也可以不在同一行
返回值类型 函数名称(形参列表) { 函数体相关语句; return 返回值; }
Go 语言函数定义格式
注意:Go 语言函数的左括号必须和函数名称在同一行,否则会报错
func 函数名称(形参列表)(返回值列表) { 函数体相关语句; return 返回值; }
5.函数调用的格式不同
- C 语言通过 #include 导入 .h 文件后,直接通过函数名称调用函数
- Go 语言通过 import 导入对应的包后,需要通过包名.函数名称的方式调用
#include <stdio.h> #include "calculate.h" int main() { int res = sum(2, 3); // 直接利用函数名称调用函数 printf("res = %d!\n", res); return 0; }
package main import ( "fmt" "lesson_1/calculate" ) func main() { res := calculate.Sum(2, 3) // 使用包名.函数名称调用函数 fmt.Println("res1 = ", res) }
6.语句的结束方式不同
- C 语言中每条语句都必须以分号结尾
- Go 语言中每条语句后面不用添加分号,编译器会自动添加
#include <stdio.h> #include "calculate.h" int main() { int res = sum(2, 3); // 不写分号会报错 printf("res = %d!\n", res); // 不写分号会报错 return 0; // 不写分号会报错 }
package main import ( "fmt" "lesson_1/calculate" ) func main() { res := calculate.Sum(2, 3) // 不用写分号 fmt.Println("res1 = ", res) // 不用写分号 }
Go 语言注释
和 C 语言一样,Go 语言也支持单行注释和多行注释,并且所有注释的特性都和C语言一样
- 单行注释
// 被注释内容
- 多行注释
/* 被注释内容*/
在 Go 语言中,官方更加推荐使用单行注释,而非多行注释,详情可以直接查看 Go 官方源码
Go 语言编码风格
- 1.go 程序编写在 .go 为后缀的文件中
- 2.包名一般使用文件所在文件夹的名称
- 2.包名应该简洁、清晰且全小写
- 3.main函数只能编写在main包中
- 4.每一条语句后面可以不用编写分号(推荐)
- 5.如果没有编写分号,一行只能编写一条语句
- 6.函数的左括号必须和函数名在同一行
- 7.导入包但没有使用包编译会报错
- 8.定义局部变量但没有使用变量编译也会报错
- 9.定义函数但没有使用函数不会报错
- 10.给方法、变量添加说明,尽量使用单行注释
关键字
- Go 语言中的关键字和C语言中的关键字的含义样, 是指被Go语言赋予特殊含义的单词
- Go 语言中关键字的特征和C语言也一样
- 全部都是小写
- 在开发工具中会显示特殊颜色
- Go 语言中关键字的注意点和C语言也一样
- 因为关键字在C语言中有特殊的含义, 所以不能用作变量名、函数名等