需求

要求开发一个hello.go程序,可以输出helloworld

开发的步骤

(1)开发这个程序/项目时,go的目录结构怎么处理

(2)代码如下:

package main

import "fmt"

func main() {

  fmt.Println("hello,world")
}

说明:

I. go文件的后缀是.go

II. package main

表示该hello.go文件所在的包是main,在go中,每个文件都必须归属于一个包

III. import "fmt"

表示:引入一个包,包名fmt,引入该包后,就可以使用fmt包的函数,比如:fmt.Println

IV. func main(){

}

func是一个关键字,表示一个函数。

main是函数名,是一个主函数,即我们程序的入口

V. fmt.Println("hello,world")

表示调用fmt包的函数Println输出"helloworld"

(3)通过go build命令对该go文件进行编译,生成exe文件

然后运行hello.exe即可输出"hello,world"

(4)注意:通过gorun命令可以直接运行hello.go程序[类似执行一个脚本文件的形式]

linux下如何开发Go程序

说明:linux下开发go和windows开发基本是一样的。只是在运行可执行的程序时,是以/文件名方式

演示:在imux下开发Go程序。

编译和运行hello.go

也可以直接使用go run hello.go的方式运行

MAC下如何开发Go程序

说明:在mac下开发go程序和windows基本一样

演示一下:如何在mac下开发一个hello.go

程序源代码的编写:hello.go

编译再运行

直接go run hello.go来运行

Golang执行流程分析

如果是对源码编译后,再执行,Go的执行流程如下图

如果我们是对源码直接执行 go run源码,Go的执行流程如下图

两种执行流程的方式区别

1)如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行

2)如果我们是直接go run go源代码,那么如果要在另外一个机器上这么运行,也需要go开发环境,否则无法执行。

3)在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。

编译和运行说明

1)有了go源文件,通过编译器将其编译成机器可以识别的二进制码文件。

2)在该源文件目录下,通过go build对hello.go文件进行编译。可以指定生成的可执行文件名,在windows下必须是.exe后缀。

3)如果程序没有错误,没有任何提示,会在当前目录下会出现一个可执行文件(windows下是.exe,Limux下是一个可执行文件),该文件是二进制码文件,也是可以执行的程序。

4)如果程序有错误,编译时,会在错误的那行报错。有助于程序员调试错误

5)运行有两种形式

Go程序开发的注意事项

1)Go源文件以“go”为扩展名。

2)Go应用程序的执行入口是main函数。这个是和其它编程语言(比如java/c) 相似

3)Go语言严格区分大小写。

4)Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也体现出Golang的简洁性

5)Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错

6)go语言定义的变量或者import的包如果没有使用到,代码不能编译通过

7)大括号都是成对出现的,缺一不可

Go语言的转义字符(escapechar)

说明:常用的转义字符有如下

1)t:表示一个制表符,通常使用它可以排版

2)\n:换行符

3)\\:一个\

4)\":一个"

5)\r:一个回车

6)案例:

package main

import "fmt" //fmt包中提供格式化,输出,输入的函数

func main() {
//转义字符的使用
fmt.Println("语言\t国家\t肤色")
fmt.Println("汉语\t中国\t黄色")
fmt.Println("英语\t英国\t白色")
}

效果:

Golang开发常见的问题和解决方法

  1. 文件名或路径错误

注释

介绍注释:

用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性;

注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。

在Golang中注释有两种形式

1)行注释

基本语法:

//注释内容

举例:

2)块注释(多行注释)

基本语法 :

/注释内容/

举例说明:

使用细节:

I. 对于行注释和块注释,被注释的文字,不会被Go编译器执行

2)块注释里面不允许有块注释嵌套[注意一下]

规范的代码风格

  1. 正确的注释和注释风格:

    1)Go官方推荐使用行注释来注释整个方法和语句。

    2)带看Go源码
  2. 正确的缩进和空白

I. 使用一次tab操作,实现缩进

II. 运算符两边习惯性各加一个空格。

比如:2 + 4 * 5

III. Go语言的代码风格

正确写法:

package main
import "fmt"
func main(){
fmt.Println("hello,world")
}

错误写法:

package main
import "fmt"
func main()
{
fmt.Println("hello,world")
}

这种写法是不正确的,Go语言不允许这样编写。

(Go语言不允许这样写,是错误的!)

Go设计者思想:一个问题尽量只有一个解决方法

5)一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅

举例说明:

Golang 官方编程指南

Golang 中文网站:https://studygolang.com/

go语言中文文档:

公众号直接回复“go语言中文文档”获取下载地址。

如遇图片不能正常查看等问题请参阅公众号文章:https://mp.weixin.qq.com/s/SjmDkdEw-2jCxXmljYMkzQ

Go 语言快速开发入门的更多相关文章

  1. Scala 基础(三):Scala语言快速开发入门

    1.Scala执行流程分析 2.Scala程序开发注意事项(重点) Scala源文件以 “.scala" 为扩展名. Scala程序的执行入口是main()函数. Scala语言严格区分大小 ...

  2. STM32F767ZI NUCLEO144 基于CubeIDE快速开发入门指南

    刚入手的NUCLEO-F767ZI:整合官网资源,理清思路,便于快速进行快发: 文章目录 1 NUCLEO 系列 2 NUCLEO-F767ZI 3 环境搭建 3.1 Keil/IAR安装 3.2 C ...

  3. SpringCloud(三):SpringCloud快速开发入门

    3-1.  搭建和配置一个服务提供者 我们知道,SpringCloud 构建微服务是基于 SpringBoot 开发的.(如果SpringBoot不会的可以先看SpringBoot专栏) 1. 创建一 ...

  4. Swift语言快速入门

    Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著   ISBN 978-7-121-24328-8 201 ...

  5. [SQL]SQL语言入门级教材_SQL语言快速入门(五)

    SQL语言快速入门(一) SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标 ...

  6. C 语言快速入门,21 个小项目足矣!「不走弯路就是捷径」

    C 语言作为大学理工科专业的必修,是很多同学走进编程世界的第一课.那么怎样才能更好的入门 C 语言呢? 下面整理了 21 个 C 语言练手项目,从基础语法开始,逐步深入,通过一个个练手项目,让你轻松驰 ...

  7. go语言快速入门教程

    go快速入门指南 by 小强,2019-06-13 go语言是目前非常火热的语言,广泛应用于服务器端,云计算,kubernetes容器编排等领域.它是一种开源的编译型程序设计语言,支持并发.垃圾回收机 ...

  8. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  9. c语言快速入门3

    如果你想快速入门计算机,可以参考我的上一篇帖子,先了解一些必备的软知识,然后再来进行语言的快速入门 计算机入门基础知识 c语言快速入门1 c语言快速入门2 3.4.1 字符和字符串 字符:'' 单个  ...

随机推荐

  1. springboot-访问数据库

    在springboot中,默认的JPA实现是Hibernate,JPA是Java Persistence API的简称,中文名Java持久层API <!--数据库--> <depen ...

  2. 学习FastDfs(二)

    分布式文件系统(DFS) 指文件系统管理的物理存储资源不一定直接连接在本地节点上 而是通过计算机网络与节点相连 分布式文件系统的设计基于客户机/服务器模式 一个典型的网络可能包括多个多个用户访问的服务 ...

  3. labview和matlab区别

    LabVIEW和MATLAB作为本身功能比较完善的软件环境,在各自不同的领域中有着十分广泛的应用.下面小编就详细介绍LabVIEW和MATLA以及它们之间的区别. 一.LabVIEW简介 LabVIE ...

  4. 移动端比1px还小的border

    巧用border 在移动端 经常出现border,细边框但有的时候 产品大大1px甚至乎会觉得不够细那么要如何写出比1px还要小的border下面是代码 希望对大家有所帮助 .thinner-bord ...

  5. nodejs和树莓派开发以及点亮RGB的LED灯代码

    前段时间集团举行前端IOT比赛,借此机会熟悉了树莓派相关的东西,特此记录一些相关的文档和开发指南. 先介绍一些树莓派的入门教程 阮一峰的树莓派入门 微雪电子-树莓派硬件中文官网 ssh链接树莓派 ss ...

  6. 一个关于小程序与单片机的通信实例(TCP/IP)

    前言 这是一个18年初的创业项目的核心功能要求,我们当时打算做一个共享类的项目,项目的主题是共享图书,线下的形式租借图书,我们当时是考虑做一个借书柜的形式,然后线下生产投放借书柜,这些借书柜本身能存放 ...

  7. 有关表单autocomplete = "off" 失效问题解决方案

    一.autocomplete介绍 autocomplete是Html5中的新属性.该属性规定输入字段是否应该启用自动完成功能.自动完成允许浏览器预测对字段的输入.当用户在字段开始键入的时候,浏览器基于 ...

  8. python-杨辉三角形

    [题目描述]输出n(0<n)行杨辉三角形,n由用户输入. [练习要求]请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释. [输入格式]一行中输入1个整数n. [输出格式]输出n行杨辉 ...

  9. FastAPI(六十八)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发

    在之前的文章:FastAPI(六十七)实战开发<在线课程学习系统>接口开发--用户登陆接口开发,今天实战:用户 个人信息接口开发. 在开发个人信息接口的时候,我们要注意了,因为我们不一样的 ...

  10. gin框架使用【5.表单参数】

    curl http://127.0.0.1:8080/users -X POST -d 'name=juanmaofeifei&age=10' package main import ( &q ...