凉鞋的 Godot 笔记 202. 变量概述与简介
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 就是变量的意思,百度翻译解释如下:
变量就是用来改变的,就像我们的输出十次 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"
如果我们指定别的类型,代码编辑器会报错,比如:
比如笔者这里制定类型为 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 变量里。
如图所示:
在我们定义并赋值完变量之后,再次修改或者访问就不用再写一遍 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
运行之后结果如下:
好了,这篇就是关于变量的一个简单介绍,这一篇内容就到这里,我们下一篇再见,拜拜。
知识地图
更多内容
更新期间半价,保持 60% 的内容免费更新到此平台
版权所有 GamePix 独立游戏学院
转载请注明凉鞋的笔记
相关文章:

凉鞋的 Godot 笔记 202. 变量概述与简介
202. 变量概述与简介 想要用好变量不是一件简单的事情,因为变量需要命名。 我们可以从两个角度去看待一个变量,第一个角度是变量的功能,第二个是变量的可读性。 变量的功能其实非常简单,变量可以存储一个值,这个值是…...

HTML 常用标签及练习
常用标签 <head>中的标签 概述 head中的内容不显示到页面上 标签说明<title>定义网页的标题<meta>定义网页的基本信息(供搜索引擎)<style>定义CSS样式<link>链接外部CSS文件或脚本文件<script>定义脚本语言<…...

Python 编程基础 | 第六章-包与模块管理 | 1、包与模块简介
一、模块 在程序开发过程中,文件代码越来越长,维护越来越不容易。可以把很多不同的功能编写成函数,放到不同的文件里,方便管理和调用。在Python中,一个.py文件就称之为一个模块(Module)。 1、简…...

为中小企业的网络推广策略解析:扩大品牌知名度和曝光度
目前网络推广已经成为企业获取潜在客户和提升品牌知名度的重要手段。对于中小企业而言,网络推广是一个具有巨大潜力和可行性的营销策略。在本文中,我们将探讨中小企业为什么有必要进行网络推广,并分享一些实用的网络推广策略。 一、扩大品牌知…...

资源受限MCU Flash空间占用优化
资源受限MCU Flash空间占用优化步骤: 避免重复功能,排查软件工程中,重复功能的代码片段,抽象出来,重新进行封装;减少内联函数inline,内联函数过大且过多的调用无疑会增加代码量,占用…...

冰蝎默认加密的流量解密
破解冰蝎的默认加密 流量包分析 上传的冰蝎流量包 POST /web-zh/DVWA/vulnerabilities/upload/ HTTP/1.1 Host: 192.168.197.111 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0 Accept: text/html,application/xhtmlxml,a…...

C#字符串操作:拼接、截取、分割等高效处理方法
目录 1.前言2. 字符串拼接 (String Concatenation)3. 字符串截取 (String Substring)4. 字符串分割 (String Split)5. 字符串替换 (String Replace)6. 字符串大小写转换 (String Case Conversion)7. 结论 1.前言 在C#编程中,字符串操作是不可避免的一部分。无论是拼…...

垃圾邮件(短信)分类算法实现 机器学习 深度学习 计算机竞赛
文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 垃圾邮件(短信)分类算…...

每日一题 1726. 同积元组(中等,计数)
直接统计数组中的数字两两组合可以得到的乘积求将相同乘积的组合再两两组合的数量最后由于abcd的值可以互换,每一个组合通过呼唤位置可以得到8种不同的组合,所以最后乘以8 class Solution:def tupleSameProduct(self, nums: List[int]) -> int:d de…...

LeetCode 2894. 分类求和并作差【数学,容斥原理】1140
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

100天掌握网络安全知识点!
1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…...

【ArcGIS绘图系列1】在ArcGIS中制作柱状图与饼状图
成图展示 图形出处:J2023-Assessment of agricultural drought based on multi-source remote sensing data in a major grain producing area of Northwest China 实现步骤 第一步 查看数据信息 数据输入到ArcGIS中:包含数据表和shp文件 1、shp文件…...

【c++】跟webrtc学std array 1: 混音的多维数组
对于固定大小的数组,非常适合用std的array 实现。静态赋初值 static constexpr std::array<int, 5> kInputValues = {0, 1, 2, 1, 0}...

App出海起量难?传参安装打开获客增长新途径
近年来,在App出海潮越发热烈的背景下,如何适应海外市场并实现“用户增长”与“提高转化”,已成为出海团队需要面临的重大挑战之一。 如何在海外市场短时间内快速起量?这个问题难倒了不少出海创业者,毕竟目前互联网环境…...

当AI遇上3D建模:一场创意与技术的完美碰撞!
在这个充满无限可能的时代,科技的发展日新月异,让我们见证了一场创意与技术的完美碰撞——AI与3D建模的结合。这种结合为我们开辟了一个全新的领域,让我们在虚拟世界中自由挥洒创意,为现实世界创造更多的可能性。 3D建模AI生成是…...

工作中的有效沟通
工作中的有效沟通 发现问题并解决问题发现问题解决问题 发现问题并解决问题 发现问题 清楚问题痛点。 注意与三方沟通时,一方沟通不明确时,则更需要想办法. 引导或者特别注意语句限制词汇,弄清楚意思。比如: 信息科要求5分钟无…...

1.集合框架
一、JDK版本之间的关系 1.1、Oracle JDK与OpenJDK的区别 1.Oracle JDK是基于OpenJDK源代码构建的,因此Oracle JDK和OpenJDK之间没有重大的技术差异。 2.Oracle JDK将更多地关注稳定性,它重视更多的企业级用户,而OpenJDK经常发布以支持其他性能…...

2023年下半年软考考试重磅消息
重磅消息一:科目连考,分批考试 2023年下半年软考考试,采取科目连考、分批次考试的方式。 什么是科目连考? 连考就是第一个科目作答结束交卷完成后,自动进入第二个科目的考试,第一个科目剩余的时长可为第二…...

Spring Boot如何优雅实现动态灵活可配置的高性能数据脱敏功能
1.背景 在当下互联网高速发展的时代下,涉及到用户的隐私数据安全越发重要,一旦泄露将造成不可估量的后果。所以现在的业务系统开发中都会对用户隐私数据加密之后存储落库,同时还要求后端返回数据给前台之前进行数据脱敏。所谓脱敏处理其实就…...

九月 Web3 游戏报告:数量增长,巨头入场,用户获取和留存仍存挑战
作者: stellafootprint.network 9 月份,比特币价格窄幅波动,小幅上涨 3.7%。Web3 游戏行业正在增长,但月活跃用户超过 1,000 人的游戏仍不足 10%。不同公链上的游戏分布相对稳定,其中 BNB 以 30.9% 的份额领先。 随着 Web3 游戏…...

Scala语言入门
学习了这么久让我们来回顾一下之前的内容吧 Hadoop生态体系知识串讲 Scala编程语言 一、概述 http://scala-lang.org 专门为计算而生的语言,Scala将(Java后者C)面向对象设计和函数式编程结合在一起的简洁的高级编程语言。而函数式编程强调的是通过传递算子&…...

MyBatisPlus-02
一 查询条件的三种 1.按条件查询 //方式一:按条件查询QueryWrapper qw new QueryWrapper();qw.lt("age",18);List<User> userList userDao.selectList(qw);System.out.println(userList); 2.lambda格式按条件查询 //方式二:lambda格…...

vscode中快速生成vue3模板
步骤:设置 -> 用户代码片段 -> vue.json(没有vue.json,选vue也可)-> 定义自己所需的代码段 代码段 如下, {"Print to console": {"prefix": "vue3", //键入该值,按tab…...

Liunx C运算符
一、运算符 (一)算数运算符 1、float和double不能进行取余操作。 (二)关系运算符 1、逻辑非 2、逻辑与 例子: if((a-1)<b&&b) 如果为真则自增,为假不自增 3、逻辑或 …...

【反射】Class类
Class类中包含了类定义的详细信息,可以使用Class类中提供的方法来获取,下面我们先获取Class对象,再介绍Class类中提供的获取类信息的方法。 一、准备工作 在src/test/java目录的cn.horse.reflect.entity包下新建BaseEntity类、UserInfoEnti…...

PyQt 问题记录
1.现成的组件不一定线程安全,(包括且不限于数据的修改竞争,和一些组件的崩溃 ) 对于PyQt 的线程使用,可能还需要更谨慎些 保存逻辑 QuestionBox("保存/Save")def Save(self):okFlagFalseerrFlagFalseWriteCmd{}for it in self.Mode…...

云安全—责任共担
0x00 前言 云安全的职责范围实际上一直遵循的是,谁提供谁负责,如果交付给云消费者的时候,交付者使用过程中就要自行负责,也就是我们经常遇到的配置不当等问题,在三层服务模式中,责任互相嵌套,最…...

使用Vscode终端设置window环境变量设置不上
问题描述 在Vscode中打开了一个终端,然后输入 set ENVprod, 但是我使用node 的proces.env.ENV并没有获取到 问题原因 可能是Vscode终端的问题,可以通过电脑自带的CMD去设置环境变量,通过echo查看,发现是没有问题的。...

【微信小程序】自定义组件布局会议OA其他页面(附源码)
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯Ἲ…...

如何使用 MiniGPT-v2
MiniGPT-v2 是一个基于视觉语言模型(LLM)的多任务学习系统。它可以用于各种视觉语言任务,包括图像描述、图像识别、图像-文本对话等。 本文将介绍如何使用 MiniGPT-v2。 MiniGPT-v2 提供了一个简单的在线演示,可以用于测试模型。…...