热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

golang第一步,编写第一个程序|8月更文挑战

golang第一步,编写第一个程序|8月更文挑战-每个编程语言的学习,都是从一个helloworld程序开始的创建helloWorld.go在HOMEgo的目录下,(就是G

每个编程语言的学习,都是从一个"hello world"程序开始的

创建helloWorld.go

HOME/go的目录下,(就是GOPATH目录里),创建一个目录叫src,然后再该目录下创建一个文件夹叫first的文件,在该目录下创建一个文件叫helloWorld.go,并双击打开,输入以下内容

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

go语言是以"包"为管理单位,每个go源文件必须先声明它所属的包,所以我们看到每个go源文件都是一个package声明

go语言的包与文件夹是一一对应的,它具有以下几点特性:

  1. 一个目录下的同级文件属于同一个包
  2. 包名可以与其目录名不相同
  3. main包是go语言程序的入口包,一个go语言程序必须有且仅有一个main包,如果一个程序没有main包,那么编译时将会出错,无法生成可执行的文件
  • import "fmt"

在包声明之后,是import "fmt" 语句,用于导入程序中所依赖的包,导入的包名必须使用双引号包围

另外有一点需要注意,导入的包中不能含有代码中没有使用到的包,否则Go编译器会报编译错误,例如 imported and not used: "xxx","xxx" 表示包名。

也可以使用一个 import 关键字导入多个包,此时需要用括号( )将包的名字包围起来,并且每个包名占用一行,也就是写成下面的样子:

import ( name1, name2 )
  1. 点操作
import (
    . "fmt"
)

这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调

用的fmt.Println("hello world")可以省略的写成Println("hello world")

  1. 别名操作
import (
    f "fmt"
)

别名操作的话调用包函数时前缀变成了我们的前缀,即f.Println("hello world")

  1. _操作
import (
    "database/sql"
    _"github.com/xxx"
)

_操作其实是引入该包,而不是直接使用包里面的函数,而是调用了该包里面的init函数

  • main函数

main函数是自定义函数的一种,在go语言中,所有函数都是以关键字func开头

它是Go语言程序的入口函数,也即程序启动后运行的第一个函数。main 函数只能声明在 main 包中,不能声明在其他包中,并且,一个 main 包中也必须有且仅有一个 main 函数。

执行go程序

方式一:

  1. 打开终端
    • window下使用快捷键win+R,输入cmd打开命令行提示符
    • linux下可以使用快捷键:ctrl+alt+T
    • mac下command+空格,输入termainl
  2. step2:进入helloworld.go所在的目录
  3. step3:输入go run helloworld.go命令并观察运行结果。

方式二:

  • 打开终端,在任意文件路径下,运行go install hello
  • 也可以进入到项目的路径,运行go install

运行go程序​ 在/home/go/bin/下(如果之前没有bin目录则会自动创建),会发现出现了一个hello的可执行文件,用如下命令运行:​ ./hello

最后

刚学golang,希望大家监督并且一起努力

有兴趣的小伙伴,欢迎关注我订阅号:EntrepreneurialG


推荐阅读
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 千万不要错过的后端[纯干货]面试知识点整理 I I
    千万不要错过的后端【纯干货】面试知识点整理IIc++内存管理上次分享整理的面试知识点I,今天我们来继续分享面试知识点整理IIlinuxkernel内核空间、内存管理、进程管理设备、 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 如何优化Webpack打包后的代码分割
    本文介绍了如何通过优化Webpack的代码分割来减小打包后的文件大小。主要包括拆分业务逻辑代码和引入第三方包的代码、配置Webpack插件、异步代码的处理、代码分割重命名、配置vendors和cacheGroups等方面的内容。通过合理配置和优化,可以有效减小打包后的文件大小,提高应用的加载速度。 ... [详细]
  • 使用gin改写“SectionBuildingRESTfulAPIs”第三方包需要提前准备的包有:“gopkg.ingin-gonicgin.v1”“gopkg.inmgo.v2” ... [详细]
author-avatar
gaoyizhen92
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有