在我遇到的所有其他編程語言中,if 陳述句總是需要一個布林值才能作業,但是在 Lua 中,以下代碼不包含任何錯誤。如果不能同時作出真偽陳述,則在這個 if 陳述中檢查什么?你怎么能只檢查“如果(變數)那么”?我是編程新手,目前與 Roblox Studio 合作,任何幫助將不勝感激。
function onTouched(Obj)
local h = Obj.Parent:FindFirstChild("Humanoid")
if h then
h.Health = 0
end
end
script.Parent.Touched:Connect(onTouched)
uj5u.com熱心網友回復:
對于如何在if陳述句中解釋值,大多數語言都有自己的規則。
在 Lua 中,false和nil被視為假。所有其他值都被視為真。
uj5u.com熱心網友回復:
if h == nil (null)
因此,如果它無法在觸及腳本父級的物件中找到類人生物,它將為假(空),否則為真(非空)。
所以
if [ObjectName] then
等于if [ObjectName] != null then
*只對物件有效(非原始值)
就像在腳本語言中一樣。
uj5u.com熱心網友回復:
if h then end
基本上相當于
if h ~= nil and h ~= false then end
在 Lua 中所有不是nil或被false認為是邏輯上的值true。
if h then end通常用于檢查是否h為空。因此,如果代碼取決于是否h已定義,則將其置于類似的條件中。
在您的示例中h是索引。不允許索引 nil 值。所以在你索引它之前,你應該確保它不是 nil 以避免錯誤。
檢查函式的回傳值是一種很好的做法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397600.html
上一篇:php獲取最接近1的值
