凉鞋的 Godot 笔记 202. 变量概述与简介

news2024/11/16 12:02:34

202. 变量概述与简介

想要用好变量不是一件简单的事情,因为变量需要命名。

我们可以从两个角度去看待一个变量,第一个角度是变量的功能,第二个是变量的可读性。

变量的功能其实非常简单,变量可以存储一个值,这个值是特定类型的。

比如我们在上一篇写的 var text_to_print = “Hello World”。

text_to_print 这个变量存储了 “Hello World” 这个值。

“Hello World” 这个值的类型是文本类型,在编程语言中,文本类型的专业叫法叫做字符串类型,变量除了有字符串类型还有整数类型、实数类型、逻辑真假类型和自定义类型。

变量的功能非常简单,但是与编程中的其他概念配合后会变得很复杂,数量也会变得非常多,这样就会在一名开发者几个月后重新查看代码或者将代码转交给别人时,变量的可读性就变得尤为重要。

而变量的可读性主要体现在变量的命名上,而主要的难度也在变量的命名上,如何做到变量的名字在几个月后还是一目了然是编程中时时刻刻要思考的问题。

好了,大概介绍了下变量的功能和难点,接下来介绍一些 GDScript 的变量的内容。

首先,是什么让 text_to_print 成为了一个变量?

答案很简单,就是 var 关键字:

var text_to_print = "Hello World"

如果没有 var 关键字,那么 text_to_print 就不是变量了,具体是什么,笔者也不知道,应该是啥也不是了。

var 是 variable 的缩写,variable 就是变量的意思,百度翻译解释如下:

image-20231002164656496

变量就是用来改变的,就像我们的输出十次 Hello World 的例子一样:

extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	var text_to_print = "Hello World"
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

如果我们想要将输出十次 Hello World 改成输出十次 Hello GDScript,那么我们只需要改动变量的值即可:

extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	var text_to_print = "Hello GDScript"
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

这非常符合变量是可以改变的定义。

好,回到正题,var 关键字规定了谁是变量。

那么是什么规定了变量的类型呢?

答案就是等号后边的值,即:“Hello GDScript”

var text_to_print = "Hello GDScript"

Godot 的代码编辑器会自动检测等号后边的值是什么类型,在这里是字符串类型,即 string 类型。

我们当然也可以给 text_to_print 指定类型,代码如下:

var text_to_print : String = "Hello GDScript"

如果我们指定别的类型,代码编辑器会报错,比如:

image-20231002165235795

比如笔者这里制定类型为 int,但是接受的值为 String 类型,那么就会报错:

Cannot assign a value of type “String” as “int”,翻译成人话就是不能把一个 String 的值设置给一个 int 类型的变量。

这也是笔者想要介绍的,即一个变量制定好了一个类型,之后就不能存储其他类型的值了,当然大部分编程语言都是这样规定的。

大家到这里会发现,等号不是等于的意思,而是赋值的意思,var text_to_print = “Hello World” 意思是 把 “Hello World” 这个值赋予给 text_to_print 变量,或者可以理解成把 “Hello World” 这个值存储到 text_to_print 变量里。

如图所示:

image-20231002171543254

在我们定义并赋值完变量之后,再次修改或者访问就不用再写一遍 var 关键字了,代码如下:

extends Node


# Called when the node enters the scene tree for the first time.
func _ready():
	var text_to_print = "Hello GDScript"
	
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	text_to_print = "Hello Godot"
	
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	print(text_to_print)
	
	pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

运行之后结果如下:

image-20231002171821595

好了,这篇就是关于变量的一个简单介绍,这一篇内容就到这里,我们下一篇再见,拜拜。

知识地图

image-20231002172112342

更多内容

更新期间半价,保持 60% 的内容免费更新到此平台
版权所有 GamePix 独立游戏学院
转载请注明凉鞋的笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式行业是否会面临中年危机?

今日话题:嵌入式行业是否会面临中年危机?事实上,无论你在哪个行业工作,都可能面临下岗风险。因此,我的建议是选择一个有前景、发展空间大的行业和方向,并不断提升自己的技能价值。为了帮助你在嵌入式领域取…

面试知识点--基础篇

文章目录 前言一、排序1. 冒泡排序2. 选择排序3. 插入排序4. 快速单边循环排序5. 快速双边循环排序6. 二分查找 二、集合1.List2.Map 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、排序 1. 冒泡排序 冒泡排序就是把小的元素往前调或者把大…

万宾科技智能井盖传感器特点介绍

当谈论城市基础设施的管理和安全时,井盖通常不是第一项引人注目的话题。然而,传统井盖和智能井盖传感器之间的差异已经引起了城市规划者和工程师的广泛关注。这两种技术在功能、管理、安全和成本等多个方面存在着显著的差异。 WITBEE万宾智能井盖传感器E…

天锐绿盾数据防泄密系统

天锐绿盾数据防泄密系统(简称数据防泄密系统)是一套从源头上保障数据安全和使用安全的软件系统。包含了文件透明加解密、内部文件流转功能、密级管控、离线管理、文件外发管理、灵活的审批流程、工作模式切换、服务器白名单等功能。从根本上严防信息外泄…

Mysql创建视图中文乱码修改docker里的配置

问题现象: 创建的视图查询无数据,查看创建语句得知,where条件里的中文变成了“???”。 在客户端里查询字符编码: show VARIABLES like %char%;就是character_set_server导致的,它配置的竟然不是utf8,…

Linux设备树插件

什么是设备树插件 Linux4.4 以后引入了动态设备树(Dynamic DeviceTree)。设备树插件(Device Tree Overlay) 是一种用于设备树(Device Tree)的扩展机制。设备树是一种用于描述硬件设备的数据结构&#xff0c…

eNSP笔记②

动态路由 RIP [适用于小型网络] 静态路由是加上非直连的网段,动态路由是加上直连的网段 动态路由就是要宣告它要去的网段,在图中可以看到,一台路由需要宣告两个网段,路由A分别宣告10.0.0.0与192.168.1.0,路由B宣告10.…

是不是所有的低代码产品都能解决真实问题

随着大数据、云计算、人工智能技术的逐渐普及,越来越多的企业开始尝试建立,或者已经在企业内部建立起数字化的产品矩阵,有很多企业成功使用数字化帮助提升效率、发展业务能力的案例,但是也有不少企业发现数字化的能力建设成本巨大…

OpenCV17-图像形态学操作

OpenCV17-图像形态学操作 1.形态学操作1.1腐蚀1.2膨胀 2.形态学应用2.1开运算2.2闭运算2.3形态学梯度2.4顶帽运算2.5黑帽运算2.6击中击不中变换2.7形态学应用示例 1.形态学操作 1.1腐蚀 图像腐蚀(Image erosion)可用于减小图像中物体的大小、填充孔洞或…

高压放大器有哪些实际应用场景

高压放大器是一种特殊类型的放大器,用于放大高电压信号。它在各种实际应用场景中发挥着重要作用。在本文中,安泰电子将介绍高压放大器的主要应用场景,让我们更好地了解这些关键技术的实际应用。 医疗设备领域: 高压放大器在医疗设…

2023最新短视频配音软件~

随着互联网的迅猛发展,网络平台上的影视剧配音逐渐成为一种热门赚钱方式。那么,想要参与影视剧配音赚钱,就需要拥有一款好用的配音软件。下面我就为大家介绍一款最新的影视剧配音神器! 悦音配音 这是一款大家都在用的配音工具&am…

TSINGSEE烟火识别算法的技术原理是什么?如何应用在视频监控中?

AI烟火识别算法是基于深度学习技术的一种视觉识别算法,主要用于在视频监控场景中自动检测和识别烟雾、火焰的行为。该技术基于深度学习神经网络技术,可以动态识别烟雾和火焰从有到无、从小到大、从大到小、从小烟到浓烟的状态转换过程。 1、技术原理 1…

企业微信设置可信域名

可信域名的验证文件注意一定放在域名所在的根目录下。 以cloud studio为例,工作区新建终端的路径就是域名在的根目录,而不是服务器的根目录

[DRAFT] LLVM ThinLTO原理分析

我们在《论文阅读:ThinLTO: Scalable and Incremental LTO》中介绍了ThinLTO论文的主要思想,这里我们介绍下LLVM ThinLTO是如何实现的。本文主要分为如下几个部分: LLVM ThinLTO Object 含有哪些内容?LLVM ThinLTO 是如何做优化的…

Splashtop 与 Canopy 携手共同增强对物联网设备的远程管理

2023年10月17日 加利福尼亚州库比蒂诺 Splashtop 在安全远程访问解决方案领域处于领先地位,Canopy 则是用于复杂硬件部署的领先 RMM 平台,双方今天宣布达成战略合作伙伴关系,以进一步增强和简化对物联网设备的远程管理。通过此次合作&#x…

react实现一维表格、键值对数据表格key value表格

UI画的需求很抽象,直接把数据铺开,不能直接用antd组件了 上一行是name,下一行是value,总数不定,最后前端还要显示求和 class OneDimensionTable extends React.Component { render() {const { data } this.props;le…

C++基础系列(一) 对象指针

一. 函数指针和指针函数 1.1 函数指针 这两个是C语言里两个比较绕的概念,我们先说一下函数指针 函数指针本质是一个指针,该指针的地址指向了一个函数。 在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间&#xf…

金融机器学习方法:K-均值算法

目录 1.算法介绍 2.算法原理 3.python实现示例 1.算法介绍 K均值聚类算法是机器学习和数据分析中常用的无监督学习方法之一,主要用于数据的分类。它的目标是将数据划分为几个独特的、互不重叠的子集或“集群”,以使得同一集群内的数据点彼此相似&…

window.location对象实例详解

一、前言 Window.location 只读属性返回一个 Location 对象,其中包含当前标签页文档的网页地址信息。 Window.location 是一个只读 Location 对象,但是我们仍然可以去重新赋值更改对象值。 下面就让我们详细介绍一下location的常用属性和方法&#xf…

基于springboot实现滴答拍摄影项目【项目源码+论文说明】

摘要 拍摄能让人放开自我、因看到不同的美景都想留下美好的记忆,有些人喜欢拍摄静物来表现宁静的氛围,通过小品类的照片,传达内心的情绪。而我更喜欢另一种方式,就是用长时间曝光把波动的海水或湖水雾化,拍摄出来的作…