180课时吃透Go语言游戏后端开发3:Go语言中其他常用的数据类型

第3节课咱们来讲讲Go语言的数据类型。数据类型就像是不同规格的容器,用来存放不同种类的数据。除了之前提到的 int(整数类型)和 string(字符串类型),还有很多其他重要的数据类型。

布尔类型(bool)

布尔类型只有两个值:true(真)和 false(假) ,常用于逻辑判断,在游戏里判断玩家是否胜利、是否击中目标等就会用到。

go 复制代码
package main

import "fmt"

func main() {
    isWin := true
    fmt.Println("玩家是否胜利:", isWin)
}

将以上代码写入main.go,运行结果如下:

bash 复制代码
leicw@Code AI世界:code003$ go run main.go
玩家是否胜利: true

浮点类型(float32 和 float64)

用于表示小数,float32 精确到7位有效数字,float64 精确到15 - 17位有效数字。在游戏中计算角色移动速度、伤害数值等小数相关的数据时会用到。

go 复制代码
package main

import "fmt"

func main() {
    speed := 3.1415926 // 这里默认是float64类型
    fmt.Println("角色移动速度:", speed)
}

将以上代码写入main.go,运行结果如下:

bash 复制代码
leicw@Code AI世界:code003$ go run main.go
角色移动速度: 3.1415926

数组(array)

数组是具有相同类型且长度固定的一组数据的集合。比如游戏中要记录多个怪物的生命值,就可以用数组。

go 复制代码
package main

import "fmt"

func main() {
    hpArray := [3]int{100, 200, 300} // 声明一个长度为3的int类型数组
    fmt.Println("怪物生命值数组:", hpArray)
}

将以上代码写入main.go,运行结果如下:

bash 复制代码
leicw@Code AI世界:code003$ go run main.go
怪物生命值数组: [100 200 300]

切片(slice)

切片是对数组的一个连续片段的引用,它的长度可以动态变化,比数组更灵活。在游戏开发中动态添加或删除游戏元素时很有用。

go 复制代码
package main

import "fmt"

func main() {
    numbers := []int{1, 2, 3}
    numbers = append(numbers, 4) // 动态添加元素
    fmt.Println("切片:", numbers)
}

将以上代码写入main.go,运行结果如下:

bash 复制代码
leicw@Code AI世界:code003$ go run main.go
切片: [1 2 3 4]

你可以尝试修改这些代码,加深对不同数据类型的理解。比如改变布尔值看看输出结果,或者给切片添加更多元素。学习过程中有任何问题,欢迎评论区留言!

推荐阅读

  1. 十分钟带你入门Go语言(Golang)开发
  2. 互联网、因特网和万维网傻傻分不清,一文带你彻底理解计算机中的各种网络
  3. 教你如何1秒安装一个Linux系统(ubuntu,debian,centos) 比虚拟机安装系统省时省心省力

每一次点赞 ,都是你无声的鼓励。每一次关注,都是我前行的动力。感谢有你,一起成长!

相关推荐
YMWM_3 分钟前
查看realsense相机序列号脚本
开发语言·python·数码相机
传奇开心果编程24 分钟前
【dioxus0.7基础语法学与练】第8课:RSX 宏 — Dioxus 声明式 UI 语法
开发语言·学习·rust
wuyk5551 小时前
18.Kruskal 算法:用最短的边连成一张网
开发语言·算法·图论
Evand J1 小时前
【MATLAB例程,图像降噪7】高斯加权滑动窗口滤波,用于图像降噪,带质量评价,附代码下载链接
开发语言·图像处理·matlab·滑动窗口·滤波·降噪·图像滤波
十年一梦惊觉醒1 小时前
快手视频发布助手,全自动视频发布带货工具
开发语言·前端·javascript
Java后端的Ai之路1 小时前
一文搞懂 GitHub Actions-CICD
开发语言·大模型·github·cicd·action
码匠许师傅1 小时前
【C++三方组件】开篇总论:为什么需要以及如何选型?
开发语言·c++
cvby1 小时前
C++11--右值引用和移动语义
开发语言·c++
en.en..2 小时前
TCP/UDP 收发流程(网络字节序---函数讲解)
开发语言·php
名字还没想好☜2 小时前
Go 用 json.Decoder 流式解析大 JSON:边读边处理不爆内存
开发语言·后端·golang·go·json