首页 > 其他分享 >【Go开发】Go语言基本语法入门:数据类型与方法定义

【Go开发】Go语言基本语法入门:数据类型与方法定义

时间:2024-09-16 09:21:51浏览次数:3  
标签:入门 数据类型 整数 var Go 声明 变量

在这里插入图片描述

文章目录

环境准备

开发环境:MacOS
Go版本:go version go1.23.1 darwin/amd64
开发工具:GoLand

一、引言

Go语言,也称为Golang,是由Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。自2009年发布以来,Go语言以其简洁的语法、高效的性能和出色的并发处理能力,在云计算、微服务等领域得到了广泛应用。本文将带你了解Go语言的基本语法,包括数据类型、变量声明、方法定义等。

二、Var关键字

在Go语言中,关键字 var 用于声明变量。以下是 var 的主要用途和作用:

声明变量: var 关键字用于在Go语言中声明一个新的变量。声明变量时,你可以指定变量的类型和名称。
初始化变量: 你可以在声明变量的同时为其赋一个初始值,也可以先声明后赋值。
批量声明: 使用 var 关键字,可以一次性声明多个变量。

具体使用可见下文

三、数据类型

Go语言的数据类型分为基本数据类型和复合数据类型。基本数据类型包括整型、浮点型、布尔型等,而复合数据类型包括数组、切片、映射、结构体等。

1. 整型

Go语言整数类型分为无符号整数(unsigned integers)和有符号整数(signed integers)。提供了以下几种整型:

  • int8、int16、int32、int64:分别表示8位、16位、32位、64位有符号整数。
  • uint8、uint16、uint32、uint64:分别表示8位、16位、32位、64位无符号整数。
  • int:根据平台可能是32位或64位整数。
  • uint:根据平台可能是32位或64位无符号整数。
    示例代码:
var a int = 10
var b int8 = 20
var c uint32 = 30

符号表示

  • 无符号整数:只能表示非负数,即零和正整数。
  • 有符号整数:可以表示负数、零和正整数。

值的范围

  • 无符号整数:其值的范围从0开始到最大正整数值。
  • 有符号整数:其值的范围从最小负整数值到最大正整数值。

2. 浮点型

Go语言提供了两种浮点型:

  • float32:32位浮点数。
  • float64:64位浮点数。
    示例代码:
var d float32 = 3.14
var e float64 = 2.71828

精度

  • float32:是32位(或4字节)的单精度浮点数,遵循IEEE 754标准。它通常有大约7到8位十进制数的精度。
  • float64:是64位(或8字节)的双精度浮点数,也遵循IEEE 754标准。它通常有大约15到16位十进制数的精度。

范围

  • float32:能表示的数值范围大约是±1.18×10-38到±3.4×1038(负数和正数)。
  • float64:能表示的数值范围大约是±2.23×10-308到±1.8×10308。

性能

  • 在某些情况下,float32 的计算可能会比 float64 更快,因为32位浮点数的运算通常需要更少的CPU周期。
  • 然而,现代CPU通常对64位浮点数有更好的支持,所以在很多情况下,float64 的性能和 float32 相差不大。

3. 布尔型

布尔型数据只有两个值:true和false。
示例代码:

var f bool = true

4. 字符串

字符串是由单个字节连接起来的字符序列,使用双引号表示。
示例代码:

var g string = "Hello, World!"

三、变量声明

Go语言提供了三种变量声明方式:

1. 指定变量类型

var name string
name = "John"

2. 自动推导类型

name := "John"

3. 批量声明

var (
    name string
    age  int
)
name = "John"
age = 30

四、方法定义

在Go语言中,方法是一种特殊的函数,它属于一个类型。方法定义格式如下:

func (receiver ReceiverType) MethodName(params) returnType {
    // 方法体
}

示例代码:

// 声明这是一个可执行程序
package main

// 导入fmt包用于格式化输出
import "fmt"

/**
* Person结构体定义
**/
type Person struct {
	Name string
	Age  int
}
/**
* 定义一个方法
**/
func (p Person) SayHello() {
	fmt.Printf("Hello, my name is %s. I am %d years old.\n", p.Name, p.Age)
}

// 程序启动方法
func main() {
	// 创建一个新的Person实例
	person := Person{Name: "John", Age: 30}
	person.SayHello()
}

运行上述代码,输出结果为:

Hello, my name is John. I am 30 years old.

在这里插入图片描述

五、总结

本文介绍了Go语言的基本语法,包括数据类型、变量声明和方法定义。掌握这些基础知识,可以帮助你更好地学习Go语言,为后续深入学习打下坚实基础。在实际开发过程中,不断实践和积累经验,才能熟练运用Go语言解决问题。

标签:入门,数据类型,整数,var,Go,声明,变量
From: https://blog.csdn.net/qq_15062089/article/details/142289324

相关文章

  • 06_Python数据类型_元组
    Python的基础数据类型数值类型:整数、浮点数、复数、布尔字符串容器类型:列表、元祖、字典、集合元组元组(Tuple)是一种不可变的序列类型,与列表类似,但有一些关键的区别。本质:只读的列表(list)定义元组元组是由圆括号()包围的元素集合,元素之间用逗号分隔。元组一旦创建,其内......
  • C++入门 二(函数重载,引用,超详细!!!)
    文章目录函数重载函数重载的概念引用引用的概念引用特性函数重载函数重载的概念函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数或类型或类型顺序)不同,常用来处理实现功能类似数据类型不同......
  • 一文让你的计算机图形学从入门到入坟,从画线算法=>光线追踪=>GPU的并行加速与手搓仿真平
    文章目录前言一.计算机图形学是什么?有什么?为什么学?当前发展?二.基础概念2.120道基础知识Q&A2.2计算机图形学设备及组成2.2.1设备分类2.2.2输入设备2.2.3输出设备2.3帧缓存原理详细解释2.3.1帧缓存的基本概念2.3.2帧缓存的结构2.3.3总结2.3OpenGL的基础知识......
  • mysql学习教程,从入门到精通,TOP 和MySQL LIMIT 子句(15)
    1、TOP和MySQLLIMIT子句内容在SQL中,不同的数据库系统对于限制查询结果的数量有不同的实现方式。TOP关键字主要用于SQLServer和Access数据库中,而LIMIT子句则主要用于MySQL、PostgreSQL(通过LIMIT/OFFSET语法)、SQLite等数据库中。下面将分别详细介绍这两个功能......
  • 谷歌图像生成AI-imagen 3新手入门指南!
    1Google最近推出了Imagen3,这是目前为止其最先进的文本生成图像模型。它基于之前的版本进行了改进,提供了更加精确的图像生成,减少了图像中的瑕疵,能够生成逼真、栩栩如生的图像。相比于早期版本,Imagen3可以处理更加复杂的文本描述,生成的图像在一致性和连贯性上有了显著提升......
  • kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascri
     场景:交流学习群里面有小伙伴咨询kettle中的javascript代码步骤如何调用外部js文件中的函数,觉得有点意思的,于是就抽时间整理了一下。 1、外部js文件为test.js,代码如下:functiontest(param){return"接收到了参数"+param;}2、当时没有过多考虑,在本地简单写了个demo测......
  • Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
     2.3.2入门阿里云oss对象存储服务的准备工作我们已经完成了,接下来我们就来完成第二步操作:参照官方所提供的sdk示例来编写入门程序。首先我们需要来打开阿里云OSS的官方文档,在官方文档中找到SDK的示例代码:编辑编辑编辑编辑参照官方提供的SDK,改造一下,即可实现文件上传功能:import......
  • C++入门基础知识69(高级)——【关于C++ 动态内存】
    成长路上不孤单......
  • C++入门基础知识68(高级)——【关于C++ 异常处理】
    成长路上不孤单......
  • Java入门:09.Java中三大特性(封装、继承、多态)01
    1封装面向对象的三大特征:封装,继承,多态。封装可以从三个层面理解将属性和方法组合在一起(封闭在一起)将属性隐藏起来,对外提供可以间接操作属性的方法。(提高程序设计安全性)目前我们都是属性私有化,并提供与之对应的get和set方法封装应用工具,为其他的程序员提供......