is_empty
2026/4/14大约 3 分钟
最后同步日期:2026-04-15 | Godot 官方原文 — is_empty
is_empty
定义
is_empty 用来检查一个字符串是否是"空的"——也就是里面一个字符都没有,长度为 0。你可以把它想象成检查一个盒子是不是空的:如果盒子里什么都没有,就返回 true;里面有东西,就返回 false。
这个方法在处理用户输入、检查配置项等场景中非常常用。
函数签名
C#
// Godot.StringExtensions 方法
public static bool IsEmpty(this string instance)GDScript
func is_empty() -> bool参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| 无 | — | — | 这是一个无参数方法,直接检查字符串本身 |
返回值
类型: bool
true:字符串为空(长度为 0)false:字符串不为空(至少有一个字符)
代码示例
基础用法
C#
using Godot;
public partial class IsEmptyExample : Node
{
public override void _Ready()
{
string empty = "";
string notEmpty = "Hello";
GD.Print(empty.IsEmpty());
// 运行结果: True
GD.Print(notEmpty.IsEmpty());
// 运行结果: False
}
}GDScript
extends Node
func _ready():
var empty := ""
var not_empty := "Hello"
print(empty.is_empty())
# 运行结果: true
print(not_empty.is_empty())
# 运行结果: false实际场景:验证用户输入
C#
using Godot;
public partial class LoginValidator : Node
{
public override void _Ready()
{
string username = "";
string password = "123456";
if (username.IsEmpty())
{
GD.Print("错误:用户名不能为空!");
}
if (password.IsEmpty())
{
GD.Print("错误:密码不能为空!");
}
if (!username.IsEmpty() && !password.IsEmpty())
{
GD.Print("登录成功!");
}
// 运行结果: 错误:用户名不能为空!
}
}GDScript
extends Node
func _ready():
var username := ""
var password := "123456"
if username.is_empty():
print("错误:用户名不能为空!")
if password.is_empty():
print("错误:密码不能为空!")
if not username.is_empty() and not password.is_empty():
print("登录成功!")
# 运行结果: 错误:用户名不能为空!进阶用法:与其他检查配合使用
C#
using Godot;
public partial class IsEmptyAdvanced : Node
{
public override void _Ready()
{
// 注意:只有空格的字符串 is_empty 返回 false!
string spaces = " ";
GD.Print($"空格字符串 is_empty: {spaces.IsEmpty()}");
// 运行结果: 空格字符串 is_empty: True
// 如果想检查"空或只有空白字符",需要配合 StripEdges
string trimmed = spaces.StripEdges();
GD.Print($"去除空白后 is_empty: {trimmed.IsEmpty()}");
// 运行结果: 去除空白后 is_empty: True
// C# 中也可以用 string.IsNullOrEmpty() 或 string.IsNullOrWhiteSpace()
GD.Print($"IsNullOrEmpty: {string.IsNullOrEmpty(spaces)}");
// 运行结果: IsNullOrEmpty: False
GD.Print($"IsNullOrWhiteSpace: {string.IsNullOrWhiteSpace(spaces)}");
// 运行结果: IsNullOrWhiteSpace: True
}
}GDScript
extends Node
func _ready():
# 注意:只有空格的字符串 is_empty 返回 false!
var spaces := " "
print("空格字符串 is_empty: " + str(spaces.is_empty()))
# 运行结果: 空格字符串 is_empty: false
# 如果想检查"空或只有空白字符",需要配合 strip_edges
var trimmed := spaces.strip_edges()
print("去除空白后 is_empty: " + str(trimmed.is_empty()))
# 运行结果: 去除空白后 is_empty: true注意事项
- 空白字符不算空:包含空格、制表符、换行符的字符串,
is_empty返回false。如果需要把空白字符也视为"空",请先用StripEdges(GDScript 中strip_edges)去除两端空白后再检查。 - C# 中的替代方案:C# 提供了
string.IsNullOrEmpty()和string.IsNullOrWhiteSpace()两个静态方法,功能更丰富。IsEmpty是 Godot 扩展方法,在处理 Godot 类型时保持一致性。 - 与长度判断等价:
str.IsEmpty()等价于str.Length == 0,但IsEmpty语义更清晰,可读性更好。 - null 与空字符串:在 C# 中,
null和""是不同的。对null调用IsEmpty会抛出异常。GDScript 中字符串变量不会是null,但可能是null(Variant 类型),此时需要先做 null 检查。
