想要用好变量不是一件简单的事情,因为变量需要命名。
我们可以从两个角度看待一个变量,第一个角度是变量的功能,第二个是变量的可读性。
变量的功能其实非常简单,变量可以存储一个值,这个值是特定类型的。
比如我们在上一篇写的 var textToPrint = “Hello World”。
textToPrint 这个变量存储了 “Hello World” 这个值。
“Hello World” 这个值的类型视文本类型,在编程语言中,文本类型的专业叫法叫做字符串类型,变量除了有字符串类型还有整数类型、实数类型、逻辑真假类型和自定义类型。
变量的功能非常简单,但是与编程中的其他概念配合后会变得很复杂,数量也会变得非常多,这样就会在一名开发者几个月后重新查看代码或者将代码转交给别人时,变量的可读性变得尤为重要。
而变量的可读性主要体现在变量的命名上,而主要的难度也在变量的命名上,如何做到变量的名字在几个月后还是一目了然时编程中时时刻刻要思考的问题。
好了,大概介绍了下变量的功能和难点,接下来介绍一些 C# 的变量的内容。
首先,是什么让 textToPrint 成为了一个变量?
答案很简单,就是 var 关键字:
var textToPrint = "Hello World";
如果没有前边的 var 关键字,那么 textToPrint 就不是变量了,具体是什么,笔者也不知道,应该是啥也不是了。
var 是 variable 的缩写,variable 就是变量的意思,百度翻译解释如下:
变量就是用来改变的,就像我们的输出十次 Hello World 的例子一样:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstGameObject : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
var textToPrint = "Hello World";
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
}
// Update is called once per frame
void Update()
{
}
}
如果我们想要输出十次 Hello World 改成输出十次 Hello C#,那么我们只需要改动变量的值即可:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstGameObject : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
var textToPrint = "Hello C#";
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
}
// Update is called once per frame
void Update()
{
}
}
这非常符合变量是可以改变的定义。
好,回到整体,var 关键字规定了谁是变量。
那么是什么规定了变量的类型呢?
答案就是等号后边的值,即:“Hello C#”
var textToPrint = "Hello C#";
C# 这门语言会自动检测等号后边的值是什么类型,在这里是字符串类型,即 string 类型。
当然我们也可以给 textToPrint 指定类型,代码如下:
string textToPrint = "Hello GDScript";
如果我们指定别的类型,代码编辑器就会报错,比如:
比如笔者这里制定类型为 int,但是接受的值为 string 类型,那么就会报错:
不能将源类型 ‘string’ 转换为目标类型 ‘int’。
这句报错人类应该是能够看懂的。
这也是笔者想要介绍的,即一个变量制定好了一个类型,之后就不能存储其他类型的值了,当然大部分编程语言都是这样规定额度。
大家到这里会发现,等号不是等于的意思,而是赋值的意思,var textToPrint = “Hello World”; 意思是把 “Hello World” 这个值赋予给 textToPrint 变量,或者可以理解成把 “Hello World” 这个值存储到 textToPrint 变量里。
如图所示:
在我们定义并赋值完变量之后,再次修改或者访问就不用在写一遍 var 关键字了,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstGameObject : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
var textToPrint = "Hello C#";
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
textToPrint = "Hello Unity";
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
print(textToPrint);
}
// Update is called once per frame
void Update()
{
}
}
运行之后结果如下:
好了,这一篇就是关于变量的一个简单介绍,这一篇的内容就到这里,我们下一篇再见,拜拜。
更新期间半价,保持 60% 的内容免费更新到此平台
版权所有 GamePix 独立游戏学院
转载请注明凉鞋的笔记