Во всех языках программирования переменные используются для хранения значений и ссылок. Примеры включают в себя текущее значение счета или ссылку на предмет инвентаря.
Хорошей практикой является использование описательных имен переменных в виде текста в нижнем регистре и объединение слов подчеркиванием. Вот несколько примеров объявлений переменных:
var score = 0
var remaining_fuel = 99.9
var paused = false
var player_name = ""
var selected_weapon
var starting_grid_position
Обратите внимание, что некоторые переменные еще не имеют установленного значения, и мы можем присваивать разные типы значений переменным.
Некоторые основные типы следующие:
Тип | Описание | Пример |
---|---|---|
int | A 64bit signed number | -12 54 0xAF |
float | Floating point number | 1.23 1e6 |
bool | True or false | true false |
String | For words and character sequences | «Hello World» |
Варианты (Variants)
В нашем первом примере переменные могут принимать любой тип значения, и значение может быть позже изменено на другой тип значения. Этот тип переменных называется Вариант.
Таким образом, легко и быстро кодировать объявления переменных таким образом.
Типизированные переменные
Существует способ объявить, какого типа значение примет переменная. Это имеет преимущества для уменьшения ошибок и получения подсказок и предупреждений от редактора при вводе кода.
Существует два способа объявления типизированных переменных, следующие:
# Method 1
var score: int = 0
var remaining_fuel: float = 99.9
var paused: bool = false
var player_name: String = ""
# Method 2 (inferring the type)
var my_int := 8
var size := 32.6
var running := true
var name := ""
Мы называем это статической типизацией, а когда используем варианты, как ранее, мы называем это динамической типизацией. Оба подхода могут использоваться по вашему усмотрению в рамках вашей программы.
Область видимости переменных
Область видимости — это часть кода программы, в которой переменная доступна. Уровни отступов текста используются для определения области видимости в редакторе и различные области могут быть развернуты или свернуты.
Глобальная область видимости — это область, в которой переменная доступна везде, например, когда она объявлена в файле Autoload. А локальная область — это область внутри функции, содержащей переменную после ее объявления.
Хорошей практикой является ограничение области видимости переменной так, чтобы она была как можно меньше, что помогает уменьшить ошибки и создавать автономные фрагменты функциональности, не зависящие от внешних переменных.
Вот пример глобальной и локальной области видимости:
extends Node2D
# score has global scope in this code module
var score = 5
# A function that may be called to add points to score
func add_to_score(points):
# points is a variable passed from outside
# it has local scope in this indented code block
score = score + points
# This function runs when we view the scene
func _ready():
add_to_score(1)
# score is accessible inside this code block
print(score) # prints 6
Ошибки могут возникнуть, если вы полагаетесь на глобальную область видимости и по ошибке повторно объявляете переменную с тем же именем в локальной области. Как в этом примере:
extends Node2D
var score = 5
var new_score
func add_to_score(points):
# new_score is accidentally re-declared
# with local scope in this indented code block
var new_score = score + points
func _ready():
add_to_score(1)
# new_score has not been set
print(new_score) # prints null
В качестве упражнения практикуйтесь в объявлении переменных как статических, так и динамических типов. Выводите значения и экспериментируйте с областью видимости, чтобы укрепить свое понимание этих концепций.