返回介绍

强类型变量

发布于 2024-01-08 20:55:54 字数 5111 浏览 0 评论 0 收藏 0

我们之前定义的变量是没有限定类型的,这种变量中可以存放任意类型的值,例如下面代码:

var a = 10
a = "Hello"
a = false

变量 a 依次存放了数字 10、字符串 Hello、布尔值 false,也就是说 a 变量是不限定类型的。

这样的变量简单易懂,但说实话,并不易用。

绝大多数变量都应该只存储一种类型的数据,例如存放玩家名称的变量,肯定永远存放字符串,玩家生命值变量,肯定永远存放数字。

在定义变量时,在变量名后加上冒号和类型来明确变量类型,例如:

var 生命值: int = 100
var 玩家名: String = "Rika"

这种变量是不能存放其他类型的数据的,例如 生命值 = "满血" 这样的代码就会出错,因为 生命值 变量是 int 类型的,不能存放字符串。

[!tip] 什么叫“强类型”

可以把强类型理解成强制类型,就是强制要求变量只能存放某种类型的值,与之对应的就是弱类型,也就说不加 : 类型名 这样的变量。

推导类型

每次都加上一个冒号和类型会比较麻烦,所以 GDScript 提供了一种语法::=,用法如下:

var 玩家生命值 := 100     # 等于 玩家生命值: int
var 玩家名称 := "Rika"    # 等于 玩家名称: String

使用 := 符号后,GDScript 会根据右侧的变量初始值推断类型,例如例子中的 玩家生命值 变量,由于初始值是个 int 类型的 100,所以这个变量就是 int 类型的。

这个语法要求变量必须有初始值,毕竟 GDScript 需要根据初始值才能去推导变量的类型。

[!tip] 强类型有什么用?

看似使用强类型会比较麻烦,但强类型能显著减少我们写代码时的犯错概率,原理就不解释了,大家继续学习就能体会到。

[!note]

强类型语法只在声明变量的时候才用,给变量赋值的时候不能用!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文