Funkcja get()
w GDScript, podobnie jak set()
, służy do definiowania tzw. getterów, czyli funkcji, które zwracają wartość danej właściwości lub zmiennej. Pozwala to na kontrolowany dostęp do właściwości obiektu w trakcie jej odczytu. Zastosowanie tej funkcji pozwala na dodanie logiki przy pobieraniu wartości oraz na bardziej elastyczną obsługę zmiennych.
Jak działa get()
?
Getter definiuje, co powinno się wydarzyć, kiedy zmienna jest odczytywana, a nie bezpośrednio manipulowana.
Przykład użycia get()
:
var _value: int = 10
func get_value():
return _value
var my_value: int setget set_value, get_value
W tym przykładzie:
get_value()
jest funkcją, która działa jako getter. Kiedy wartość my_value
jest odczytywana, automatycznie wywołuje się get_value()
, która zwraca _value
.
Zastosowanie w praktyce:
Getter może być połączony z setterem przy użyciu setget
, co umożliwia pełną kontrolę nad tym, jak wartość zmiennej jest zarówno ustawiana, jak i pobierana:
var health: int setget set_health, get_health
func set_health(value):
health = clamp(value, 0, 100) # Ustawia wartość zdrowia między 0 a 100
func get_health():
return health
Tutaj getter get_health()
zwraca bieżącą wartość zmiennej health
, natomiast setter zapewnia, że zdrowie zawsze mieści się w przedziale 0–100.
Zastosowania:
- Ochrona danych: Umożliwia kontrolowany dostęp do danych, szczególnie gdy chcesz uniknąć niepoprawnych wartości.
- Optymalizacja logiki: Wprowadza dodatkową logikę podczas odczytu wartości, np. dynamiczne przeliczanie lub ładowanie danych z innych źródeł.
- Odseparowanie danych: Getter umożliwia odseparowanie danych wewnętrznych obiektu od jego interfejsu zewnętrznego.
Przykład getterów dla dynamicznych wartości:
var score: int = 0
func get_formatted_score():
return "Wynik: " + str(score)
Ten getter formatuje wynik na potrzeby interfejsu użytkownika za każdym razem, gdy jest odczytywany.
Funkcja get()
w połączeniu z setget
umożliwia wprowadzenie bardziej zaawansowanej logiki podczas pracy z właściwościami, co pozwala na elastyczne zarządzanie stanem obiektów w Godot.
Published using WordPress Blurt Publisher from https://godot.com.pl.