你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

初窥门径代码起手,Golang入门精炼教程首次运行golang程序EP01

发布时间:2023-09-06

浏览次数:0

接上篇,本书接上篇,上一篇:兔起猎鹰落,方方面面,.18入门精化教程,从白丁到鸿儒,全平台(4) 开发环境搭建EP00,我们搭建了。 18开发运行环境,接下来就可以运行第一个.18程序了。 让我们做好准备,开始.18的首航吧。

第一次运行

打开4,在任意目录下新建test.go文件:

package main // 声明 main 包
import "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() {  // 声明 main 主函数入口
	fmt.Println("hello Go lang 1.18") // 打印 字符串}

然后按快捷键组合+b运行程序(Mac平台使用cmd+b)

程序返回:

> Environment:
>   GOPATH=C:/Go
> Directory: C:\\Users\\liuyue\\www\\tornado6
> Command: C:/Go/bin\\go.exe run -v C:\\Users\\liuyue\\www\\tornado6\\test.go
> Output:
command-line-arguments
hello go1.18
> Elapsed: 3.070s
> Result: Success

与 Ruby 这样的解释型语言不同, 和 Java 一样,是一种编译型语言。 执行前需要编译成可执行文件。 gorun命令会编译源码并直接执行源码的main()函数。 ,不会在当前目录中留下可执行文件。

可以看到gorun命令已经帮我们执行了。 如果愿意的话,可以直接在终端中执行编译运行命令:

C:\\Users\\liuyue\\www\\tornado6>go run test.go
hello Go lang 1.18

功效是一样的。 如果需要单独编译成可执行文件,可以使用命令:

C:\\Users\\liuyue\\www\\tornado6>go build test.go
C:\\Users\\liuyue\\www\\tornado6>dir
test.go test.exe

代码分析

首先,支持使用//在代码中添加一些指令和解释,方便自己或者其他程序员阅读代码,这样可以大大提高程序的可读性:

fmt.Println("Hello,Go lang1.18") // 右边的所有内容当做说明,而不是真正要执行的程序,起辅助说明作用

还支持使用 /**/ 多行注释:

sublime格式化js代码_sublime text 格式化代码快捷键

func main() {
	/*
		以下代码都是将信息打印在屏幕上
	 */
	fmt.Println("Hello Go lang 1.18")
}

gorun命令在编译代码时会忽略注释的内容。 如果你写了一些不希望计算机执行的测试代码,你也可以添加注释。

使用()作为模块管理单元。 每个源文件必须首先声明它所属的包,因此我们会在每个Go代码的开头听到一个声明:

package main // 声明 main 包

对应的目录,它有以下特点:

1、一个目录中的同级文件属于同一个文件。

2. 该名称可以与所在目录的名称不同。

3、main包是程序的入口包。 一个Go语言程序必须有且只有一个主包。 如果程序没有主包,编译时就会出错,很难生成可执行文件。 这一特点遵循了C语言的特点。

声明当前文件后,我们还可以导出程序所需的工具包,例如:

import "fmt" // 导入 fmt 包,打印字符串时需要用到

这与您想要使用的类似。 fmt包是的外部系统标准库。 用它来输入和输出低格式的内容。 类似的系统外部包还有os、io等。

引导包的时候也有一些技巧,比如:

import . "fmt" // 导入 fmt 包,打印字符串时需要用到

这个操作的意思是,包导出后,调用这个包的函数时,可以省略带前缀的包名,即上面调用的fmt.("")可以省略,写成(“你好世界”)

同样,包可以声明自己的别名:

sublime text 格式化代码快捷键_sublime格式化js代码

import f "fmt" // 导入 fmt 包,打印字符串时需要用到

在别名操作的情况下,调用包函数时的前缀就成为我们的前缀,即f。 (“你好世界”)。

您还可以在导入包时手动初始化对象:

import _ "github.com/ziutek/mymysql/godrv"

_操作是引入包,不是直接使用包上的函数,而是调用包上的init函数。

但需要注意的是,导出的包不能包含代码中未使用的包,否则Go编译器会报编译错误,如: "os"。 换句话说,您可以导入您使用的任何内容,但不要使用它。 别误会,它和你在食堂吃的东西的意思是一样的。

与类似,一个关键字也可以导出多个包。 这种情况下,包名需要用方括号()括起来,但每个包名占一行,写法如下:

import(
    "fmt"
    "os"
)

main方法是程序的入口方法,类似于程序中的if=='',即程序启动后第一个运行的方法。 main方法只能在main包中声明,不能在其他包中声明。 而且,一个主包中必须有且只有一种主要技术。

同时,main方法也是一种自定义方法。 在中,所有方法都以关键字func开头,定义格式如下:

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

需要注意的是的写法不是那么随意的,左大括号{必须和函数名在同一行,否则会报错。

fmt.()方法是fmt包中的外部方法,用于输出低格式的数据,如字符串、整数、小数等。这里我们使用一个函数来复制字符串。 注意sublime text 格式化代码快捷键,函数复制后,会手动改行,ln是line的缩写。

关于工作目录

网上很多教程都是按照模式来讲解的,目录结构如下

--bin 存放编译后生成的二进制补码可执行文件

--pkg 存储编译后的.a文件

--src 存放项目的源码,可以是你自己的代码,也可以是你的goget下载的包

将自己的包或者别人的包全部放到$/src目录下进行管理的方式称为模式。

但实际上,从.11开始,goenv多了一个环境变量:这里的111,虽然是v1.11的版本标记,但是是一个开关,通过它可以开启或关闭gomod模式。

它有三个可选值:off、on、auto,默认值为auto。

=offsublime text 格式化代码快捷键,禁用模块支持,并在编译时从 和 文件夹中查找包。

=on,启用模块支持,编译时会忽略文件夹,只根据go.mod下载依赖。

=auto,当项目在$/src之外且项目根目录下有go.mod文件时,手动启用模块支持。

gomod出现之后,正在逐渐被淘汰,基本上已经没有人使用了。

这也解释了为什么我们需要自动打开gomod在上一篇文章中:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

如果你是.18的初学者,你可以忘记它并完全拥抱gomod,但如果你仍在维护低版本的项目,你应该将其设置为关闭。

结论

可以被认为是下一个时代的C语言。 如果打个比方,如果古代的C语言是一把六脉冲的绝世神剑,六脉冲一起发出,伤到空中的人,表现就无敌了。 不过,门槛太高了。 早就不可能修炼出惊天动地的内力来驾驭这些剑气功了,所以戈朗就是这个时代的生死符。 借鉴六脉剑的心法和剑法,将内力注入指尖,也能远距离伤人,但入门门槛更低。 连没有剑法基础的小白都可以练习。

如有侵权请联系删除!

13262879759

微信二维码