Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Module:Yesno — Wikipédia
Module:Yesno — Wikipédia 👆 Click Here! Read More..
Cette page est protégée.
Une page de Wikipédia, l'encyclopédie libre.

 Documentation[voir] [modifier] [historique] [purger]

Ce module à risque est inclus sur un très grand nombre de pages et ne peut pas être modifié.

Cette protection ne constitue pas obligatoirement une approbation de la version actuelle. Vous pouvez proposer une modification en page de discussion. Lorsqu'un compromis sera trouvé en page de discussion, vous pourrez demander la modification auprès des administrateurs (voir le journal des protections).
Ne pas modifier. Cette page est maintenue par un outil externe. Toutes les modifications doivent être effectuées sur mediawiki.org.

Ce module propose une fonction cohérente pour transformer des valeurs ou chaines en un booléen.

Utilisation

Le wikicode ne permet pas de saisir directement des valeurs booléennes, seulement des chaines type « oui » ou « non ». Ce module les évalue et détermine une valeur booléenne true ou false que Lua pourra utiliser. Il retourne nil en l’absence de paramètre, pour permettre la distinction entre nil et false. Lorsque ce paramètre a une valeur imprévue, le module retourne la valeur par défaut ou nil.

Syntaxe

yesno(valeur, défaut, défautVide)
  • valeur – est la valeur à tester.
  • défaut – valeur par défaut pour les valeurs qui ne sont assimilées ni à des booléens ni à nil.
  • défautVide – si ce paramètre n'est pas nil ce sera la valeur par défaut pour les chaines vides ou uniquement composées d'espaces, sauts de ligne…

Exemples

Il faut commencer par charger le module. Il ne peut être appelé que depuis un autre module Lua, il ne peut pas être appelé directement par un modèle.

local yesno = require('Module:Yesno')

Certaines valeurs retournent toujours true, d'autres valeurs retournent toujours false. La valeur nil retourne toujours nil.

-- Ces valeurs retournent toujours true :
yesno('oui')
yesno('yes')
yesno('y')
yesno('true')
yesno('on')
yesno('1')
yesno(1)
yesno(true)

-- Ces valeurs retournent toujours false :
yesno('non')
yesno('no')
yesno('n')
yesno('false')
yesno('off')
yesno('0')
yesno(0)
yesno(false)

-- Une valeur nil retourne nil :
yesno(nil)

Les chaines sont converties en minuscules avant d'être évaluées :

-- Ces valeurs retournent toujours true :
yesno('Oui')
yesno('OUI')
yesno('oUi')
yesno('tRuE')

-- Ces valeurs retournent toujours false :
yesno('Non')
yesno('NON')
yesno('nOn')
yesno('fALsE')

Une valeur par défaut peut être spécifiée pour les valeurs autres que celles listées ci-dessus. Si aucune valeur par défaut n'est fournie le module retourne nil pour ces valeurs.

-- Ces valeurs retournent nil :
yesno('foo')
yesno({})
yesno(5)
yesno(function() return 'Ceci est une fonction.' end)

-- Ces valeurs retournent true :
yesno('foo', true)
yesno({}, true)
yesno(5, true)
yesno(function() return 'This is a function.' end, true)

-- Ces valeurs retournent "bar" :
yesno('foo', 'bar')
yesno({}, 'bar')
yesno(5, 'bar')
yesno(function() return 'This is a function.' end, 'bar')

Une chaine vide est évaluée à la valeur du troisième paramètre s'il est défini, sinon à la valeur par défaut.

yesno('')               -- Retourne nil.
yesno('', true)         -- Retourne true.
yesno('', true, nil)    -- Retourne true.
yesno('', true, false)  -- Retourne false.
yesno('', 'foo', 'bar') -- Retourne 'bar'.

Attention, cette dernière fonctionnalité est différente du module présent sur en: qui n'a qu'une valeur par défaut.

Piège récurrent

Lire la section « Standard solution: and/or » sur la page lua-users.org/wiki/TernaryOperator : les pseudo-ternaries avec "and/or" en Lua ont une particularité de fonctionnement, qui est souvent très problématique quand on utilise ce module.

Code illustrant le piège :

-- Assume module is invoked with « |trucmuche = false » parameter
local arg = frame.args['trucmuche']

-- XXX: Although arg is false, this code unexpectedly gives true!!
local trucmucheEnabled = yesno(arg) or true

Voir aussi

  • Aide:Paramètre booléen
  • {{Oui non}}
    • Projet Scribunto Projet Scribunto

La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.

-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.

return function (val, default, emptyDefault)
	-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
	-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
	-- following line.
	if type(val) == 'string' then val = val:lower() end
	if val == nil then
		return nil
	elseif val == true
		or val == 'yes'
		or val == 'y'
		or val == 'oui'
		or val == 'o'
		or val == 'true'
		or val == 'on'
		or tonumber(val) == 1
	then
		return true
	elseif val == false
		or val == 'no'
		or val == 'n'
		or val == 'non'
		or val == 'false'
		or val == 'off'
		or tonumber(val) == 0
	then
		return false
	elseif emptyDefault ~= nil and type(val) == 'string' and val:match( '^%s*$' ) then
		return emptyDefault
	else
		return default
	end
end
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Module:Yesno&oldid=225725888 ».
Catégories :
  • Méta-module
  • Module appelé par un autre module
Catégorie cachée :
  • Module protégé

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id