Dota 2 Wiki

你现在尚未登录,许多功能可能无法正常使用,若已有账号,请登录,若没有,请先注册Twitch账号
目前我们有非常多的待翻译条目,你也可以看一下目前我们需要优先处理的有哪些目前我们有非常多的待翻译条目,你也可以看一下目前我们需要优先处理的有哪些英雄页面的攻略、克制和物品页面的推荐英雄、小贴士等均为社区玩家编写的,你也可以把自己的心得写上去哦。英雄页面的攻略、克制和物品页面的推荐英雄、小贴士等均为社区玩家编写的,你也可以把自己的心得写上去哦。看不懂技能的buff/debuff是哪个跟哪个?鼠标移动到名称上就能看到游戏内显示的名字和描述了。看不懂技能的buff/debuff是哪个跟哪个?鼠标移动到名称上就能看到游戏内显示的名字和描述了。目前我們沒有善於製作其他中文變體的人員,如果您善於或擁有相關技術,請幫忙補充其他中文變體的空白。目前我們沒有善於製作其他中文變體的人員,如果您善於或擁有相關技術,請幫忙補充其他中文變體的空白。

了解更多

Dota 2 Wiki
Advertisement

This module provides a Lua interface for the parser functions provided by Extension:Variables.

Usage[]

Function names are identical to the parser function names.

Variables.vardefineecho[]

Returns the value as it was stored (as a string). Should only be used to verify the stored value, not for inline declarations.

Differences[]

  • Returns nil instead of empty strings (use p.varexists() to check for variables holding an empty string).
  • varexists() returns a boolean instead of 1 or nil.

Tests[]

YesY All tests passed.

Name Expected Actual
YesY test_var_defined
YesY test_var_defined_empty
YesY test_var_defined_empty_default
YesY test_var_not_defined
YesY test_var_not_defined_default
YesY test_vardefine_boolean
YesY test_vardefine_function_throws
YesY test_vardefine_nil
YesY test_vardefine_number
YesY test_vardefine_string
YesY test_vardefine_table_throws
YesY test_vardefineecho_boolean
YesY test_vardefineecho_function_throws
YesY test_vardefineecho_nil
YesY test_vardefineecho_number
YesY test_vardefineecho_returns
YesY test_vardefineecho_string
YesY test_vardefineecho_table_throws
YesY test_varexists_false
YesY test_varexists_true



--------------------------------------------------------------------------------
-- Imports
--------------------------------------------------------------------------------

local util = require( 'libraryUtil' )
local checkType = util.checkType
local checkTypeMulti = util.checkTypeMulti

--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------

local frame

local function callParserFunction( func, args )
  if not frame then
    frame = mw.getCurrentFrame()
  end
  return frame:callParserFunction( func, args )
end

--------------------------------------------------------------------------------
-- Functions
--------------------------------------------------------------------------------

local p = {}

function p.vardefine( name, value )
  checkType( 'vardefine', 1, name, 'string' )
  checkTypeMulti( 'vardefine', 2, value, { 'boolean', 'string', 'number', 'nil' } )
  local value = tostring( value or '' )

  callParserFunction( '#vardefine', { name, value } )
end

function p.vardefineecho( name, value )
  checkType( 'vardefineecho', 1, name, 'string' )
  checkTypeMulti( 'vardefineecho', 2, value, { 'boolean', 'string', 'number', 'nil' } )
  local value = tostring( value or '' )

  return callParserFunction( '#vardefineecho', { name, value } )
end

function p.varexists( name )
  checkType( 'varexists', 1, name, 'string' )

  return ( callParserFunction( '#varexists', name ) == '1' )
end

function p.var( name, default )
  checkType( 'var', 1, name, 'string' )

  local value = callParserFunction( '#var', name )
  if value ~= '' then
    return value
  elseif default then
    return default
  else
    return nil
  end
end

--------------------------------------------------------------------------------
-- Return
--------------------------------------------------------------------------------

return p
Advertisement