Menu
CoddyTech

类型转换

本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 14 课,共 92 课。

类型转换会将一个值从一种类型转换为另一种类型。在 GDScript 中,你需要写出新类型的名称,并将值放在括号中:int()、float() 或 str()。

var whole := int(3.9) # 3
var decimal := float(5) # 5.0
var text := str(42) # "42"

int() 会直接去掉小数部分,不进行四舍五入:int(3.9) 的结果是 3,而 int(-3.9) 的结果是 -3。

类型转换也能把文本转换成数字。"7" 是一个 String,因此在转换之前,不能把它赋给 int 变量:

var level_text := "7"
var level: int = int(level_text) # 7
var price := float("2.5") # 2.5

不使用 int(),var level: int = level_text 会导致错误,因为 level_text 中保存的是 String。

str() 会将任意值转换为文本:str(2.5) 的结果是 "2.5",str(true) 的结果是 "true"。

不是数字的文本不会让程序停止。int("abc") 会得到 0,所以意外出现 0 往往意味着文本不是数字。

challenge icon

挑战

入门

在注释下方,创建三个经过类型转换的值变量:

  • int_price:将 price 的值转换为 int
  • level:将 level_text 中的文本转换为 int
  • coins_float:将 coins 的值转换为 float

不要更改其他行。程序会输出:

Price: 99.99
Int Price: 99
Level: 7
Coins: 15.0

亲手试试

extends Node

func _ready():
	var price := 99.99
	var level_text := "7"
	var coins := 15
	# 转换下面的值
	
	# 不要修改下面的代码行
	print("Price: ", price)
	print("Int Price: ", int_price)
	print("Level: ", level)
	print("Coins: ", coins_float)
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: GDScript 在线编译器