mutable struct Item
name::String
description::String
use_time::Int
_use_count::Int # Podtržítko naznačuje, že tato proměnná by měla být považována za "privátní"
function Item(name::String, description::String, use_time::Int)
new(name, description, use_time, 0)
end
end
# Globální proměnná pro sledování počtu vytvořených instancí
const total_items_created = Ref(0)
function use!(item::Item)
item._use_count += 1
total_items_created[] += 1
return "Používá se $(item.name) ($(item.description)), což trvá $(item.use_time) sekund. Počet použití: $(item._use_count)."
end
function get_total_items_created()
return total_items_created[]
end
struct Survik
name::String
item::Item
end
function set_item!(survik::Survik, item::Item)
survik.item = item
end
function use_item!(survik::Survik)
item_line = use!(survik.item)
println("$(survik.name) používá $(survik.item.name): $item_line")
end
# Ukázka použití
baterka = Item("Baterka", "osvětluje cestu", 0)
println(use!(baterka))
lekarnicka = Item("Lékárnička", "léčí zranění", 20)
println(use!(lekarnicka))
println("Celkový počet vytvořených instancí Item: ", get_total_items_created())
pepa = Survik("Pepik the survik", baterka)
use_item!(pepa)
set_item!(pepa, lekarnicka)
use_item!(pepa)