ماڊيول:Example
ڏيک
| وضاحت | مثال ماڊيول. |
|---|---|
| ڪوڊ جو ذريعو | Example |
| حالت | نامعلوم |
مثال ماڊيول.
| هي صفحو ھن ریتخاني (سينڊ باڪس) يا آزمائشي (ٽيسٽ) ترميم جي لاءِ استعمال نه ڪيو وڃي. تجربو ڪرڻ جي لاءِ, براءِ مهرباني پنهنجو مخصوص ريتخانو يا ٻيا ريتخانا استعمال ڪريو. |
| هي صفحو صرف مثالن ۽ ڊيمانسٽريشن لاءِ استعمال ٿيندو آهي، ٻين نيم اسپيس مثال صفحن وانگر. اهو مکيه انسائيڪلوپيڊيا جو حصو نه آهي. |
هي ماڊيول لاءِ مثال طور دستاويز آهي، جيڪو ڏيکاري ۽ سمجهاڻي لاءِ استعمال ٿيندو آهي۔
Documentation
Package items
example.hello( frame )(function)- Hello world فنڪشن
- Parameter:
frameموجوده frame (table) - Returns: Hello world
example.hello_to( frame )(function)- Hello world فنڪشن
- Parameters:
- Returns: Hello world
example.count_fruit( frame )(function)- ميون جي ڳڻپ
- Parameters:
- Returns: صوفن ۽ ڪيلن جو تعداد
example.Name2( frame )(function)- Name2
- Parameter:
frameموجوده frame (table) - Returns: ڪجهه output
--- مثال ماڊيول.
-- @module example
-- @alias p
local p = {} -- وڪيپيڊيا تي سڀ Lua ماڊيول هڪ variable بيان ڪرڻ سان شروع ٿيڻ گهرجن،
-- جيڪو انهن جون ٻاهران رسائي لائق فنڪشنون رکندو.
-- اهڙن variables کي توهان پنهنجي مرضي جو ڪو به نالو ڏئي سگهو ٿا،
-- ۽ انهن ۾ فنڪشنن سان گڏ مختلف data به رکي سگهجي ٿي.
--- Hello world فنڪشن
-- @param {table} frame موجوده frame
-- @return Hello world
p.hello = function( frame ) -- "p" ۾ هڪ فنڪشن شامل ڪريو.
-- اهڙيون فنڪشنون وڪيپيڊيا ۾
-- #invoke command ذريعي سڏي سگهجن ٿيون.
-- "frame" ۾ اها data هوندي جيڪا وڪيپيڊيا
-- هن فنڪشن کي هلڻ وقت موڪليندي آهي.
-- 'Hello' توهان جي مرضي جو نالو آهي. ماڊيول استعمال ڪرڻ وقت ساڳئي نالي جو حوالو ڏيڻ ضروري آهي.
local str = "Hello World!" -- هڪ local variable بيان ڪريو ۽ ان کي
-- "Hello World!" جي برابر رکو.
return str -- هي اسان کي ٻڌائي ٿو ته هن فنڪشن کي ختم ڪيو وڃي ۽
-- "str" ۾ موجود معلومات وڪيپيڊيا ڏانهن واپس موڪلي وڃي.
end -- فنڪشن "hello" جي پڄاڻي
--- Hello world فنڪشن
-- @param {table} frame موجوده frame
-- @param {string} frame.args[1] نالو
-- @return Hello world
function p.hello_to(frame) -- ٻيو فنڪشن شامل ڪريو
local name = frame.args[1] -- ماڊيول ڏانهن موڪليل arguments تائين رسائي لاءِ `frame.args` استعمال ڪريو
-- `frame.args[1]` پهرئين unnamed parameter ڏانهن اشارو ڪري ٿو،
-- جيڪو ماڊيول کي ڏنو ويو هجي
return "Hello, " .. name .. "!" -- `..` strings کي ڳنڍي ٿو. هي ڏنل نالي مطابق
-- customized greeting واپس ڪندو، جهڙوڪ "Hello, Fred!"
end
--- ميون جي ڳڻپ
-- @param {table} frame موجوده frame
-- @param {string} frame.args.bananas ڪيلن جو تعداد
-- @param {string} frame.args.apples صوفن جو تعداد
-- @return صوفن ۽ ڪيلن جو تعداد
function p.count_fruit(frame)
local num_bananas = tonumber(frame.args.bananas) or 0 -- Named arguments ({{#invoke:Example|count_fruit|foo=bar}})
local num_apples = tonumber(frame.args.apples) or 0 -- کي پڻ `frame.args` کي نالي سان index ڪري حاصل ڪيو ويندو آهي (`frame.args["bananas"]`,
-- يا برابر طور `frame.args.bananas`).
local conj_bananas = num_bananas == 1 and 'banana' or 'bananas'
local conj_apples = num_apples == 1 and 'apple' or 'apples'
-- Ternary operators شرط جي بنياد تي compact طريقي سان قيمتون assign ڪن ٿا.
-- هتي `conj_bananas` کي `'banana'` ملندو جيڪڏهن `num_bananas` 1 هجي، ٻي صورت ۾ `'bananas'`.
-- ساڳي طرح، `conj_apples` کي `'apple'` ملندو جيڪڏهن `num_apples` 1 هجي، ٻي صورت ۾ `'apples'`.
return 'I have ' .. num_bananas .. ' ' .. conj_bananas .. ' and ' .. num_apples .. ' ' .. conj_apples
-- مٿي وانگر، ڪيترن strings کي گڏ ڳنڍي
-- ڏنل arguments جي بنياد تي هڪ جملو ٺاهيو وڃي ٿو.
end
--- Lucky فنڪشن
-- @param {string} a
-- @param {string} b
-- @return ڇا a خوش قسمت آهي.
local function lucky(a, b) -- استعمال لاءِ custom functions بيان ڪري سگهجن ٿيون. هتي اسان 'lucky' نالي فنڪشن بيان ڪريون ٿا جنهن ۾ ٻه inputs a ۽ b آهن. نالا توهان جي مرضي جا آهن.
if b == 'yeah' then -- شرط: جيڪڏهن b string 'yeah' هجي. Strings لاءِ quotes ضروري آهن. 'then' شامل ڪرڻ ياد رکو.
return a .. ' is my lucky number.' -- جيڪڏهن مٿين شرط پوري ٿئي ته 'a is my lucky number.' output ٿيندو. String concatenation operator ٻن dots سان ڏيکاربو آهي.
else -- جيڪڏهن ڪا شرط پوري نه ٿئي، يعني جيڪڏهن b ڪجهه ٻيو هجي، ته ايندڙ سٽ تي بيان ڪيل output ڏيو. 'else' سان 'then' نه ايندو.
return a -- صرف a output ڪريو.
end -- 'if' حصو 'end' سان ختم ٿيڻ گهرجي.
end -- جيئن 'function' به ختم ٿيڻ گهرجي.
--- Name2
-- @param {table} frame موجوده frame
-- @return ڪجهه output
function p.Name2(frame)
-- ايندڙ پنج سٽون گهڻو ڪري صرف سهولت لاءِ آهن ۽ توهان جي ماڊيول ۾ جيئن آهن تيئن استعمال ڪري سگهجن ٿيون. Output conditions line 50 کان شروع ٿين ٿيون.
local pf = frame:getParent().args -- هي سٽ template parameters کي هن code ۾ آساني سان استعمال ڪرڻ جي اجازت ڏئي ٿي. Equal sign variables بيان ڪرڻ لاءِ استعمال ٿئي ٿو. 'pf' کي توهان پنهنجي مرضي جي لفظ سان بدلائي سگهو ٿا.
local f = frame.args -- هي سٽ {{#invoke:}} مان parameters آساني سان استعمال ڪرڻ جي اجازت ڏئي ٿي. 'f' کي توهان پنهنجي مرضي جي لفظ سان بدلائي سگهو ٿا.
local M = f[1] or pf[1] -- f[1] ۽ pf[1]، جيڪي اسان تازو بيان ڪيا آهن، پهرئين parameter ڏانهن اشارو ڪن ٿا. هي سٽ سهولت لاءِ انهن کي 'M' طور مختصر ڪري ٿي. توهان اصل variable names استعمال ڪري سگهو ٿا.
local m = f[2] or pf[2] -- ٻئي کي 'm' طور مختصر ڪيو ويو آهي.
local l = f.lucky or pf.lucky -- named parameter 'lucky' کي l طور مختصر ڪيو ويو آهي. نوٽ ڪريو ته syntax unnamed parameters کان مختلف آهي.
if m == nil then -- جيڪڏهن ٻيو parameter استعمال نه ڪيو ويو هجي.
return 'Lonely' -- جيڪڏهن پهرين شرط پوري ٿئي ته string 'Lonely' output ٿيندو.
elseif M > m then -- جيڪڏهن پهرين شرط پوري نه ٿئي، ته هي سٽ ٻي شرط test ڪري ٿي: جيڪڏهن M، m کان وڏو هجي.
return lucky(M - m, l) -- جيڪڏهن شرط پوري ٿئي، ته فرق calculate ڪري self defined function ڏانهن l سان گڏ موڪليو وڃي ٿو. Output ان تي دارومدار رکي ٿو ته l 'yeah' طور مقرر آهي يا نه.
else
return 'Be positive!'
end
end
return p -- سڀ ماڊيول آخر ۾ اهو variable واپس ڪري ختم ٿين ٿا جنهن ۾ انهن جون فنڪشنون وڪيپيڊيا ڏانهن هونديون آهن.
-- هاڻي اسان هن ماڊيول کي {{#invoke: Example | hello }},
-- {{#invoke: Example | hello_to | foo }}، يا {{#invoke:Example|count_fruit|bananas=5|apples=6}} سان سڏي استعمال ڪري سگهون ٿا.
-- نوٽ ڪريو ته invoke جو پهريون حصو ماڊيول جي وڪي صفحي جو نالو آهي،
-- ۽ ٻيو حصو ان فنڪشن جو نالو آهي جيڪا توهان جي واپس ڪيل
-- variable سان ڳنڍيل آهي.
-- "print" فنڪشن وڪيپيڊيا ۾ اجازت يافته ناهي. سڀ output
-- strings جي صورت ۾ وڪيپيڊيا ڏانهن "return" ڪرڻ سان حاصل ٿيندو آهي.