खोज…


टिप्पणियों

मॉड्यूल लिखने के लिए मूल पैटर्न उन फ़ंक्शन और मानों वाले फ़ंक्शन के साथ तालिकाएँ भरना है जो फ़ंक्शन स्वयं हैं। मॉड्यूल तब require और उपयोग करने के लिए कॉलिंग कोड के लिए इस फ़ंक्शन को वापस करता है। (कार्य लुआ में प्रथम श्रेणी के मान हैं, इसलिए किसी तालिका में कोई फ़ंक्शन संग्रहीत करना आसान और सामान्य है।) तालिका में किसी भी महत्वपूर्ण स्थिरांक, जैसे, तार या संख्या के रूप में भी हो सकता है।

मॉड्यूल लिखना

--- trim: a string-trimming module for Lua
-- Author, date, perhaps a nice license too
--
-- The code here is taken or adapted from  material in
-- Programming in Lua, 3rd ed., Roberto Ierusalimschy

-- trim_all(string) => return string with white space trimmed on both sides 
local trim_all = function (s)
  return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end

-- trim_left(string) => return string with white space trimmed on left side only
local trim_left = function (s)
  return (string.gsub(s, "^%s*(.*)$", "%1"))
end

-- trim_right(string) => return string with white space trimmed on right side only
local trim_right = function (s)
  return (string.gsub(s, "^(.-)%s*$", "%1"))
end

-- Return a table containing the functions created by this module
return {
  trim_all = trim_all,
  trim_left = trim_left,
  trim_right = trim_right
}

ऊपर वाले के लिए एक वैकल्पिक दृष्टिकोण एक शीर्ष-स्तरीय तालिका बनाना है और फिर इसमें सीधे फ़ंक्शन संग्रहीत करना है। उस मुहावरे में, ऊपर का हमारा मॉड्यूल इस तरह दिखेगा:

-- A conventional name for the table that will hold our functions
local M = {}

-- M.trim_all(string) => return string with white space trimmed on both sides
function M.trim_all(s)
  return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end

-- M.trim_left(string) => return string with white space trimmed on left side only
function M.trim_left(s)
  return (string.gsub(s, "^%s*(.*)$", "%1"))
end

-- trim_right(string) => return string with white space trimmed on right side only
function M.trim_right(s)
  return (string.gsub(s, "^(.-)%s*$", "%1"))
end


return M

कॉल करने वाले के दृष्टिकोण से, दो शैलियों के बीच थोड़ा अंतर है। (उल्लेख करने लायक एक अंतर यह है कि पहली शैली उपयोगकर्ताओं को मॉड्यूल को बंद करने के लिए और अधिक कठिन बना देती है। यह या तो एक समर्थक या एक चोर है, जो आपके दृष्टिकोण पर निर्भर करता है। इसके बारे में अधिक विस्तार से, एनरिक गार्सिया द्वारा इस ब्लॉग पोस्ट को देखें। Cota।)

मॉड्यूल का उपयोग करना

-- The following assumes that trim module is installed or in the caller's package.path,
-- which is a built-in variable that Lua uses to determine where to look for modules.
local trim = require "trim"

local msg = "    Hello, world!      "
local cleaned = trim.trim_all(msg)
local cleaned_right = trim.trim_right(msg)
local cleaned_left = trim.trim_left(msg)

-- It's also easy to alias functions to shorter names.
local trimr = trim.trim_right
local triml = trim.trim_left


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow