Go语言基础语法 20240904更新

2024-09-04 11:52

本文主要是介绍Go语言基础语法 20240904更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码开源地址

https://github.com/zhangdapeng520/zdpgo_basic

快速入门

示例代码:

package mainimport "fmt"func main() {fmt.Println("Hello World")
}

第一行代码 package 用来声明包名。main包时整个程序的入口包,在一个Go语言的程序中,有且只有一个main包。

第二行代码 import 用于导入内置包或者第三方包。内置包一般是不带前置的,第三方包一般都带有一个域名作为前缀,比如 github.com/zhangdapeng520/zdpgo_basic

第三行代码 func 用来声明方法名,main 方法是一个特殊的方法。main包中的main方法是整个程序的入口方法,Go语言的代码是从main方法开始执行的。

Go程序不要求在每一句代码后面加分号,换行代表一行代码结束了。

main函数是没有参数,没有返回值的。

fmt.Println 用来输出数据到终端,这里的代码是向终端输出 “Hello World” 的字符串。

程序运行方式

方法1:这种方案是将编译和执行合并在一起了,本质上Go编译器还是会帮我们先把代码编译成一个可执行文件,然后再执行这个可执行文件。

go run main.go

方法2:这种方法是手动编译一个可执行文件,然后再手动执行这个可执行文件。

go build -o main
./main

定义一个简单的方法

示例代码:

package mainimport "fmt"// 定义一个简单的方法
func hello() {fmt.Println("hello world")
}func main() {// 调用方法hello()
}

使用 func 可以用来定义方法。这里定义的是一个没有参数没有返回值的方法。也是最简单的一种方法形态。

在学习阶段,我们可以将知识点封装在一个又一个的方法中,便于快速学习和组织代码。后面我们还会学习关于方法的更多高级的知识。

单元测试

Go语言中的单元测试特别简单,只需要在同包中创建一个xxx_test.go文件就会被认为是单元测试文件。

比如我们有一个hello.go文件,那么我们创建一个hello_test.go文件就会被认为是基于hello.go的单元测试文件。

单元测试文件中可以写单元测试代码,单元测试代码可以单独执行,独立于main方法之外。

示例:hello.go

package mainimport "fmt"// 定义一个简单的方法
func hello() {fmt.Println("hello world")
}

示例:hello_test.go

package mainimport "testing"func TestHello(t *testing.T) {hello()
}

在Goland中,单元测试方法可以直接通过点击运行,这种方式比较推荐。

如果要通过命令行执行测试代码,则在测试文件所在目录执行如下命令:

go test

基本类型:int,uint

int是带符号的整数类型,uint是不带符号的整数类型。

在Go语言中,int类型比较多,主要包括int,int8,int16,int32,int64,每种int类型都有对应的uint类型。

示例代码:

package mainimport "fmt"func main() {var n1 intvar n2 int8var n3 int16var n4 int32var n5 int64fmt.Println(n1, n2, n3, n4, n5)var un1 uintvar un2 uint8var un3 uint16var un4 uint32var un5 uint64fmt.Println(un1, un2, un3, un4, un5)
}

上面的代码会输出:

0 0 0 0 0
0 0 0 0 0

因为整数类型的默认值是0,如果我们声明了整数类型,但是没有赋值,Go编译器会自动帮我们使用0作为整数类型的默认值。

算术运算符

Go语言支持常见的算术运算符:

  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • %:取余

示例代码:

package mainimport "fmt"func main() {var n1 int = 33var n2 int = 333fmt.Println(n1 + n2)fmt.Println(n1 - n2)fmt.Println(n1 * n2)fmt.Println(n1 / n2)fmt.Println(n1 % n2)
}

这篇关于Go语言基础语法 20240904更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1135952

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新