前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三、Go语言基础结构解析

三、Go语言基础结构解析

作者头像
cn華少
发布2020-05-08 00:43:53
3610
发布2020-05-08 00:43:53
举报
文章被收录于专栏:IT综合技术分享
本系列文章均为学习过程中记录的笔记,欢迎和我一起来学习Go语言。
全文使用环境如下:
  • Go语言版本:1.14
  • 操作系统:deepin
  • 使用工具:Goland开发工具

本篇我们进行学习Go语言项目基础结构

我们在上一节时编写了第一个Hello World

这块代码我们从上向下来看。 第一行是package main,这里是指的包的概念,在go语言中包是代表这个文件夹中所有go代码的目录,这里是main,在Go语言程序中一个可独立执行的程序必须需要有mian这个包,即package main是我们整个程序的入口。而我们日常编写时会新建各种各样用途的go文件,我们通常使用不同的文件夹来区分,这时不同文件夹中的文件我们统一采用一种包的命名方式,便于我们在其他地方使用。详细使用方式将在后续的代码编写过程中详细讲解。

包的命名规范

在我们日常编写包名时应使用简洁、富有含义的名称,例如我们这是一个工具包,则使用package util

导入其他包

继续向下看代码,我们可以看到

代码语言:go
复制
import (
    "fmt"
    "net/http"
)

这里是导入操作,导入我们在当前go文件中使用的所有包,在go语言初期时我们在导入这些包时需要先将其下载到本地,而现在1.14版本中module功能已基本稳定,我们可以在这里直接使用。有一些跑题,module后续我们也会讲到。 回归主题,在import的括号中我们看到里面包含了两个包,第一个fmt包是我们使用的打印包,属于官方包,第二个是net/http包,是用于http服务器搭建使用的包,同样属于官方包。当然我们还会使用一些其他第三方的包,例如:“"google.golang.org/grpc"” 这里我们是导入两个以上的包,我们需要使用(),在我们日常使用时,如果只导入一个包,我们可以直接写

代码语言:go
复制
import "fmt"

注意,在Go语言语法中,括号永远都是在代码后面,而不能换行到新的一行,如果括号在下面,在程序编译时Go会在括号上面的一行代码结尾处追加英文分号“;”作为本行结束。

函数声明

下面进入我们的main函数,这里是main包的主入口函数,在我们启动Go语言编写的一个二进制程序时程序会根据main函数进行程序执行,这里需要讲一下,每个go文件中还有一个init函数,这个函数是第一个执行的,后续在编写示例时我们会讲到。

代码语言:go
复制
func main() {
    //打印
    fmt.Println("Hello World")
    /*搭建一个http服务,实现基础打印*/
    //指定当前目录为根目录
    http.Handle("/", http.FileServer(http.Dir(".")))
    http.HandleFunc("/hello", helloWorld)
    //使用端口8080作为服务监控端口
    http.ListenAndServe(":8080", nil)
}

每个函数使用 func 关键词来声明当前是一个函数,mian是函数名,()是参数,{}中的内容是函数体。 函数命名时需要注意,如果首字母是大写,则它是一个公共函数,即他人都可以使用,如果是一个小写,则表示是一个私有函数,只能在本包中使用。 上面函数体中我们可以看到fmt.Println("Hello World")作为打印语句,使用了fmt包中的Println函数,参数是"Hello World",首先我们上面引入了fmt包,这里在使用时就需要fmt开头,让程序知道我们要使用这个包了,Println函数的P首字母是大写,因此我们这里可以直接使用到这个函数,而查看源码得知,参数可以任意多个,我们这里传入了一个参数,执行后,控制台打印了Hello World。 这时有小伙伴问了,我不想用fmt开头怎么办? Go语言已经设计好了,如果我们使用其他名字时只需要在引入包时起一个别名即可

代码语言:go
复制
import aa "fmt"

这里我们就可以使用aa.Println("Hello World")作为打印语句 注意:在go语言中严格要求了import的导入行为,如果我们在go文件中没有使用到的包被导入了,默认是会报错的,因此我们还是使用什么导入什么吧,别贪图一时方便各种导入。

在包的导入这里还有很多其他的使用方式,我们会再后续的代码编写过程中逐渐进行使用,具体使用时再做详细讲解。

本次基础结构解析我们先讲到这里,下一篇我们会讲解在Go语言中的数据类型都有哪些。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本系列文章均为学习过程中记录的笔记,欢迎和我一起来学习Go语言。
  • 全文使用环境如下:
  • 本篇我们进行学习Go语言项目基础结构
    • 包的命名规范
      • 导入其他包
        • 函数声明
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档