--
-- define Point class for LUA
--
Point = {}
Point.key_list = {"x","y","z"}
function Point.__index(t,key)
error("No such Point member or init:"..key ,2)
end
function Point.__newindex(t,key,value)
for i = 1,#Point.key_list do
if key == Point.key_list[i] then
-- t[key] = value
rawset(t,key,value)
return
end
end
error("No such Point member :"..key ,2)
end
function Point.new(...)
local pt = {}
args = { ... }
if #args == 3 then
pt.x = args[1]
pt.y = args[2]
pt.z = args[3]
elseif #args == 2 then
pt.x = args[1]
pt.y = args[2]
else
error("2D or 3D only" ,2)
end
setmetatable(pt,Point)
return pt
end
--
-- Usage
--
p1 = Point.new(1,2)
p2 = Point.new(3,4)
p1.x = 8
x1,y1=p1.x,p1.y
print(string.format("x1,y1=%d,%d",x1,y1))
-- p2 = p1
print(string.format("x2,y2=%d,%d",p2.x,p2.y))
--
local points = {p1,p2}
print("points[1].x=" .. points[1].x)
print("points[2].y=" .. points[2].y)
-- [[ below is two error test
print("p1.z="..p1.z) -- : No such Point member or init:z
p1.xxx = 567 -- : No such Point member :xxx
-- ]]
--
--[[ output
--
x1,y1=8,2
x2,y2=3,4
points[1].x=8
points[2].y=4
: No such Point member or init:z
: No such Point member :xxx
-- ]]
訂閱:
張貼留言 (Atom)
ubuntu kernel 5.4 pop noise (躁音) // 用 這條命令 可 暫時 關閉音效 省電模式, 但 重開機, 問題 仍在. $ sudo echo 0 > /sys/module/snd_hda_intel/parameters/power_s...
-
反同的意見大集結: 1. 應該保障,但是不能說同志婚的主張優於異性婚. 因為民主是算人頭的.需要溝通立法. 必需要消除異性婚的疑慮. 2. 立法院/政府應該推出認識同志的官方資料 並由學者專家認可.立法委員簽名認可. 簡單版/詳盡版. 不宜由同志組...
-
律法從來不保障自由的愛. 律法保障的是理性的價值. 讓愛自由,讓制度理性. 就生養而言. 異性婚 是合乎理性的價值. 同性婚 是不合乎理性的自由. 動物選配偶, 多是荷爾蒙,色彩獨特,再加上近水樓台. 人選配偶, 除了以上的因素,還有地位/財富/顏值等. ...
-
從愛的三角形,論 同性婚/異性婚 的優劣. 以下,單身是點,二人是線,親子是面(三角形). (絆的多少,對應到關係的穩定度, 愛,血親,收養,長相伴(習慣),性愛, 都可以形成不同程度的"絆". 若同性婚/ 異性婚無明顯差異,則不特別標明....
沒有留言:
張貼留言