Go入门学习笔记二:第一个Go语言程序

  • 原创
  • 作者:程序员三丰
  • 发布时间:2021-07-19 10:31
  • 浏览量:666
相信有学习开发语言基础的同学,对于这篇文章就不是很陌生。和我们学习大部分开发语言一样,熟悉一门开发语言代码结构的第一个课时都是写一个“Hello World”。基于此,我们能快速简单了解一下开发语言的代码风格和基础代码组织结构。

第一个Go语言程序

惯例,和学习其他语言一样,输出Hello World!

  • 在控制台输出“Hello World!”,源代码如下:

    package main // 声明 main 包
    
    import (
        "fmt"    // 导入 fmt 包,打印字符串是需要用到
    )
    
    func main() { // 声明 main 主函数
        fmt.Println("Hello World!")
    }
    

    代码拆解

  • package (创建包)

    • Go 语言以“包”作为管理单位,每个Go源文件必须先声明它所属的包,所以我们会看到每个Go源文件的开头都是一个package声明,格式如下:

      package name
      

      其中package是声明包名的关键字,name为包的名字。

    • Go语言的包和文件夹是一一对应的,它具有以下几个特点:

      • 一个目录下的同级文件夹属于同一个包。
      • 包名可以与其目录名不同。
      • main 包是Go语言程序的入口包,一个Go语言程序必须有且仅有一个main包。如果一个程序没有main包,那么编译时将会出错,无法生成可执行文件。
  • import(导入包)

    • 在包声明之后,是import语句,用于导入程序中所依赖的包,导入的包名使用双引号“”包围,格式如下:

      import "name"
      

      其中import是导入包的关键字,name为所导入包的名字。

    • 注意:导入的包中不能含有代码中没有使用到的包,否则Go编译器会报编译错误,例如imported and not used : “xxxx”, “xxxx”表示包名。

    • 可以使用一个import关键字导入多个包,此时需要用括号()将包的名字包围起来,并且每个包名占用一行,格式如下:

      import (
          "name1"
          "name2"
      )
      
  • main 函数

    • main函数是Go语言程序的入口函数,也即程序员启动后运行的第一个函数。

    • main函数只能声明在main包中,不能声明在其他包中,并且,一个main包中也必须有且仅有一个main函数。

    • 定义格式:

      func 函数名(参数列表) (返回值列表) {
          函数体
      }
      

      说明:

      • 函数名:由字母、数字、下划线组成,但函数名的第一个字符不能为数字,并且,在同一个包内,函数名不能重复。
      • 参数列表:一个参数由参数变量和参数类型组成,例如func foo(a int, b string)。
      • 返回值列表:可以是返回值类型列表,也可以是参数列表那样变量名与类型的组合,函数有返回值时,必须在函数体中使用return语句返回。
      • 函数体:能够被重复调用的代码片段。
      • 注意:Go语言函数的左大括号{必须和函数名称在同一行,否则会报错。
声明:本文为原创文章,51blog.xyz和作者拥有版权,如需转载,请注明来源于51blog.xyz并保留原文链接:https://mp.51blog.xyz/article/11.html

文章归档

推荐文章

buildadmin logo
Thinkphp8 Vue3 Element PLus TypeScript Vite Pinia

🔥BuildAdmin是一个永久免费开源,无需授权即可商业使用,且使用了流行技术栈快速创建商业级后台管理系统。

热门标签

PHP ThinkPHP ThinkPHP5.1 Go Mysql Mysql5.7 Redis Linux CentOS7 Git HTML CSS CSS3 Javascript JQuery Vue LayUI VMware Uniapp 微信小程序 docker wiki Confluence7 学习笔记 uView ES6 Ant Design Pro of Vue React ThinkPHP6.0 chrome 扩展 翻译工具 Nuxt SSR 服务端渲染 scrollreveal.js ThinkPHP8.0 Mac webman 跨域CORS vscode GitHub ECharts Canvas