โมดูล:ตัวอย่าง

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา
เอกสารประกอบโมดูล[ ดู ] [ แก้ไข ] [ ประวัติ ] [ ล้าง ]

นี่คือเอกสารตัวอย่างสำหรับโมดูลที่ใช้สำหรับการสาธิตและอื่นๆ

ดูเพิ่มเติม

ท้องถิ่น p  =  {};      --โมดูล lua ทั้งหมดบน Wikipedia ต้องเริ่มต้นด้วยการกำหนดตัวแปร
                    --ที่จะเก็บฟังก์ชันที่สามารถเข้าถึงได้จากภายนอก
                    --ตัวแปรดังกล่าวสามารถมีชื่ออะไรก็ได้ที่คุณต้องการและอาจ 
                    --ยังมีข้อมูลและฟังก์ชันต่างๆ
พี สวัสดี =  ฟังก์ชัน(  frame  ) --      เพิ่มฟังก์ชันไปที่ "p"  
                                        --ฟังก์ชันดังกล่าวสามารถเรียกได้ในวิกิพีเดีย
                                        --ผ่านคำสั่ง #invoke
                                        --"frame" จะมีข้อมูลที่ Wikipedia
                                        --sends ฟังก์ชั่นนี้เมื่อมันทำงาน 
                                 -- 'สวัสดี' เป็นชื่อที่คุณเลือก ต้องอ้างอิงชื่อเดียวกันเมื่อใช้โมดูล
    
    local  str  =  "สวัสดีชาวโลก!"   --ประกาศตัวแปรท้องถิ่นและตั้งค่าให้เท่ากับ
                                --"สวัสดีชาวโลก!".  
    
    return  str --นี่    บอกเราให้ออกจากฟังก์ชันนี้และส่งข้อมูลใน
                  --"str" ​​กลับไปที่วิกิพีเดีย
    
จบ  - สิ้นสุดฟังก์ชัน "สวัสดี"
ฟังก์ชัน หน้า. hello_to ( frame ) 		-- เพิ่มฟังก์ชันอื่น
	ท้องถิ่น ชื่อ =  กรอบ args [ 1 ] -- หากต้องการเข้าถึงอาร์กิวเมนต์ที่ส่งผ่านไปยังโมดูล ให้ใช้ `frame.args`  
							    -- `frame.args[1]` หมายถึงพารามิเตอร์ที่ไม่มีชื่อตัวแรก
							    -- มอบให้กับโมดูล
	ส่งคืน "สวัสดี "  ..  ชื่อ ..  "!"   -- `..` เชื่อมสตริงเข้าด้วยกัน สิ่งนี้จะส่งคืนการปรับแต่ง
									 -- การทักทายขึ้นอยู่กับชื่อที่กำหนด เช่น "สวัสดี เฟร็ด!"
จบ
ฟังก์ชัน หน้า. count_fruit ( เฟรม)
	ท้องถิ่น num_bananas  =  กรอบ args กล้วย-- อาร์กิวเมนต์ที่มีชื่อ ({{#invoke:Example|count_fruit|foo=bar}}) ก็เช่นเดียวกัน 
	ท้องถิ่น num_apples  =  กรอบ args แอปเปิล-- เข้าถึงได้โดยการจัดทำดัชนี `frame.args` ตามชื่อ (`frame.args["bananas"]` หรือ)   
										   -- เทียบเท่ากับ `frame.args.bananas`
	ส่งคืน 'I have'  ..  num_bananas  ..  ' bananas and '  ..  num_apples  ..  ' apples'
										   -- เหมือนข้างบน นำเชือกมาต่อกันเพื่อผลิต
										   -- ประโยคตามอาร์กิวเมนต์ที่กำหนด
จบ

 ฟังก์ชั่น ท้องถิ่นlucky ( a ,  b )  -- หนึ่งสามารถกำหนดฟังก์ชั่นที่กำหนดเองสำหรับการใช้งาน ที่นี่เรากำหนดฟังก์ชัน 'โชคดี' ที่มีสองอินพุต a และ b ชื่อที่คุณเลือกได้
	ถ้า b  ==  'ใช่'  แล้ว -- เงื่อนไข: ถ้า b เป็นสตริง 'ใช่' สตริงต้องมีเครื่องหมายคำพูด อย่าลืมใส่ 'then'
		กลับ .. 'เป็นเลขนำโชคของฉัน.' -- ผลลัพธ์ 'a คือหมายเลขนำโชคของฉัน' หากตรงตามเงื่อนไขข้างต้น ตัวดำเนินการต่อสตริงแสดงด้วย 2 จุด   
	อื่น -- หากไม่เป็นไปตามเงื่อนไข เช่น ถ้า b เป็นอย่างอื่น ให้ระบุเอาต์พุตในบรรทัดถัดไป 'else' ไม่ควรมี 'then'
		คืนค่า a  -- เพียงแค่ส่งออก a.
	end  -- ส่วน 'if' ควรลงท้ายด้วย 'end'
จบ -- ตามที่ควรจะเป็น 'หน้าที่'

ฟังก์ชัน หน้า. Name2 ( เฟรม)
	-- ห้าบรรทัดถัดไปเป็นส่วนใหญ่เพื่อความสะดวกเท่านั้น และสามารถใช้ได้เช่นเดียวกับโมดูลของคุณ เงื่อนไขการส่งออกเริ่มต้นในบรรทัดที่ 20
	local  pf  =  เฟรม: getParent () args  -- บรรทัดนี้อนุญาตให้ใช้พารามิเตอร์เทมเพลตในโค้ดนี้ได้อย่างง่ายดาย เครื่องหมายเท่ากับใช้เพื่อกำหนดตัวแปร 'pf' สามารถแทนที่ด้วยคำที่คุณเลือกได้
	ท้องถิ่น  =  กรอบ args -- บรรทัดนี้อนุญาตให้ใช้พารามิเตอร์จาก {{#invoke:}} ได้อย่างง่ายดาย 'f' สามารถแทนที่ด้วยคำที่คุณเลือกได้ 
	local  M  =  f [ 1 ]  หรือ pf [ 1 ]  -- f[1] และ pf[1] ซึ่งเราเพิ่งกำหนด ให้อ้างถึงพารามิเตอร์ตัวแรก บรรทัดนี้ย่อให้เป็น 'M' เพื่อความสะดวก คุณสามารถใช้ชื่อตัวแปรเดิมได้
	local  m  =  f [ 2 ]  หรือ pf [ 2 ]  -- ย่อส่วนที่สองเป็น 'm'
	ท้องถิ่น L  =  F โชคดีหรือPF lucky -- พารามิเตอร์ที่มีชื่อ 'lucky' ถูกย่อเป็น l โปรดทราบว่าไวยากรณ์แตกต่างจากพารามิเตอร์ที่ไม่มีชื่อ   
	if  m  ==  nil  ดังนั้น -- หากไม่ได้ใช้พารามิเตอร์ตัวที่สอง
		return  'Lonely'  - ส่งออกสตริง 'Lonely' หากตรงตามเงื่อนไขแรก
	elseif  M  >  m  แล้ว -- หากไม่เป็นไปตามเงื่อนไขแรก บรรทัดนี้จะทดสอบเงื่อนไขที่สอง: ถ้า M มากกว่า m
		คืน โชค( M  -  m ,  l )  -- หากตรงตามเงื่อนไข ระบบจะคำนวณส่วนต่างและส่งผ่านไปยังฟังก์ชันที่กำหนดด้วยตัวเองพร้อมกับ l ผลลัพธ์ขึ้นอยู่กับว่า l ถูกตั้งค่าเป็น 'ใช่' หรือไม่
	อื่น
		กลับมา 'เป็นบวก!'
	จบ
จบ

return  p     - โมดูลทั้งหมดสิ้นสุดโดยส่งคืนตัวแปรที่มีฟังก์ชันไปยัง Wikipedia
-- ตอนนี้เราสามารถใช้โมดูลนี้ได้โดยเรียก {{#invoke: Example | สวัสดี }},
-- {{#invoke: ตัวอย่าง | สวัสดี_to | foo }} หรือ {{#invoke:Example|count_fruit|bananas=5|apples=6}}
-- โปรดทราบว่าส่วนแรกของการเรียกใช้คือชื่อของวิกิเพจของโมดูล
-- และส่วนที่สองคือชื่อของหนึ่งในฟังก์ชันที่แนบมากับ 
-- ตัวแปรที่คุณส่งคืน

-- ไม่อนุญาตให้ใช้ฟังก์ชัน "พิมพ์" ในวิกิพีเดีย เสร็จสิ้นการส่งออกทั้งหมด
-- ผ่านสตริง "ส่งคืน" ไปยัง Wikipedia