大材小用是什么生肖| 指甲上白色月牙代表什么| 泡泡像什么| 湿热带下是什么意思| 什么不什么| 市监狱长是什么级别| 银子有什么功效与作用| 脑癌是什么原因引起的| 什么狗不如| 雯五行属什么| 崩漏下血是什么意思| 嘿咻是什么意思| 鬼剃头是什么原因| 祖马龙是什么档次| 脑挫伤是什么意思| 圣诞节是什么时候| 单核细胞计数偏高是什么意思| 午时左眼跳是什么兆头| 47是什么生肖| 烹饪是什么意思| jealousy是什么意思| 彪子是什么意思| 脱头发严重是什么原因引起的| 西红柿炒什么好吃| 小产是什么意思| 转机是什么意思| 车标是牛的是什么车| 女生下边长痘痘是什么病| 分泌物发黄是什么原因| 主治医生是什么级别| 唐宝是什么意思| 善罢甘休的意思是什么| 螳螂吃什么食物| 早搏是什么症状| 乳头是什么| 梦到鞋子是什么意思| 十全十美是什么生肖| 普渡众生是什么意思| 大腿根内侧发黑是什么原因| 尿频尿急小腹胀痛吃什么药| 老司机什么意思| 忌口是什么意思| 小米是什么米| 北斗是什么意思| 6月30日是什么座| 9月18日是什么日子| 乙肝五项145阳性是什么意思| 紫微斗数是什么| 路亚竿什么品牌好| 冠心病吃什么药| 什么声什么气| 合卺是什么意思| 喝ad钙奶有什么好处| 二月二十三日是什么星座| 尿比重是什么意思| 美商是什么意思| 融字五行属什么| 果可以加什么偏旁| 减肥晚餐吃什么| 小姑独处是什么意思| 舌头疼吃什么药| 喝茶心慌的人什么体质| 花是什么意思| 溺爱的意思是什么| dpo是什么意思| 九月十五是什么星座的| 微不足道的意思是什么| 胰腺炎是什么病严重吗| 坐月子可以吃什么蔬菜| 张柏芝什么星座| 小猫来家里有什么预兆| 虾米吃什么| cep是什么意思| 吃四方是什么生肖| 看见蛇过马路什么征兆| 醋酸纤维是什么面料| ups是什么快递| 5.25是什么星座| 蛤蜊是什么| 党参和丹参有什么区别| 菌群失调是什么意思| 梦见撞车是什么预兆| 什么药去湿气最好最快| 南方有什么生肖| 降逆是什么意思| 梦见自己死了是什么预兆| 救世主是什么意思| 鲁迅原名叫什么| 胆结石吃什么比较好| 怀孕两天会有什么反应| 奶粉什么时候喝最好| ct是什么检查| 男性尿道炎是什么原因引起的| 实质性是什么意思| 宫外孕是什么原因造成的| 什么不可什么| 肚脐左边是什么器官| sma是什么| 蜂蜜什么时候喝比较好| 紫色代表什么| 油边是什么肉| 清酒是什么酒| 银屑病吃什么食物最好| 扁桃体发炎引起的发烧吃什么药| 兔子不吃窝边草是什么生肖| prince是什么牌子| 腋下是什么部位| 什么是棱长| 风寒感冒吃什么药| 补充公积金是什么意思| 什么的玉米| 儿女情长英雄气短是什么意思| 老年人头晕是什么原因| 梅花什么时候开| 拔胡子有什么危害| 什么情况下做喉镜| 记性不好吃什么药| 黯然泪下是什么意思| xswl什么意思| 韭菜炒什么好吃| 城五行属什么| 今年16岁属什么生肖| 什么体质的人才有季经| 新生儿用什么奶粉好| 晚上11点到12点是什么时辰| 人的胆量由什么决定| 扩词是什么| 什么茶叶好| 什么叫假性发烧| 虫草对身体有什么好处| 品质是什么| 蛇为什么有毒| 什么高什么下| 卤门什么时候闭合| 乳头胀痛什么原因| 三月二十八号是什么星座| 为什么会梦魇| 黄痰黄鼻涕吃什么药| 护士长是什么级别| 湉字五行属什么| 维生素d有什么作用| 大便少是什么原因| 翻身是什么意思| 巴甫洛夫的狗比喻什么| 不以规矩下一句是什么| 炸膛什么意思| 汽车五行属什么| 农历3月是什么月| 随诊是什么意思| 美业是什么行业| 拉屎酸臭是什么原因| 祸祸是什么意思| 萎缩性胃炎是什么原因引起的| 落差感是什么意思| 镇宅是什么意思| 取环后月经量少是什么原因| 什么叫社保| 一直鼻塞是什么原因| 7月4号是什么星座| 水仙是什么茶| 葛粉吃了有什么好处| 观音菩萨原名叫什么名| 雌激素分泌过多是什么原因引起的| 防晒衣什么品牌好| 属牛男和什么属相最配| 阳阴阳是什么卦| 阴道放气是什么原因| 1996年1月属什么生肖| 佛跳墙是什么| 电镀对人体有什么危害| 行房时间短吃什么药| 孤独的最高境界是什么| 番薯什么时候传入中国| 屠苏是什么意思| 青梅竹马是什么意思| 什么的绽放| 中国梦是什么梦| 7月24日什么星座| 狗血是什么意思| 肠胃炎吃什么食物好| 唯字五行属什么| 什么钙片补钙效果好| 人子是什么意思| 维生素b吃什么| 老气横秋是什么意思| 吃什么促进腺样体萎缩| 爸爸的姐姐应该叫什么| 女娲是一个什么样的人| 剖腹产第四天可以吃什么| 存款准备金率下调意味着什么| 芝士是什么东西| 拉肚子拉稀水吃什么药管用| 儿童咳嗽吃什么消炎药| 可乐必妥是什么药| 胆结石有什么治疗方法| 五心烦热吃什么中成药| 洁面慕斯和洗面奶有什么区别| 什么水晶招财| 最可爱的动物是什么生肖| 借鉴是什么意思| 戊日是什么意思| 拉磨是什么意思| 深圳到香港需要办理什么手续| 破军星是什么意思| 不以为然是什么意思| 粉刺是什么样的图片| 做喉镜能检查出什么病| 什么是黄酒| 阴虱什么症状| 南冠指的是什么| 男人有泪痣代表什么| 晚上睡觉咬牙齿是什么原因| 前列腺增大吃什么药| 贫血吃什么| 永无止境是什么意思| 黄皮果什么味道| 拜有利主要是治疗什么| 很黄很暴力是什么意思| 梦见抢银行是什么意思| 我一言难尽忍不住伤心是什么歌| rh血型鉴定阳性是什么意思| 九头身什么意思| 裙子搭配什么鞋子| 睚眦是什么意思| 缺铁性贫血的人吃什么补血最快| 知柏地黄丸治什么病| 什么叫脑梗| 小狗什么时候可以洗澡| 金贵肾气丸治什么病| 儿童嗓子哑了什么原因| 猴魁属于什么茶| 等是什么生肖| 魏大勋和李沁什么关系| 木加一笔有什么字| 菜花炒什么好吃| 肺结节吃什么中成药| 什么清肠茶好| 梦见赢钱了是什么预兆| 蚂蚱喜欢吃什么| 头痛呕吐什么原因| 脾胃不好吃什么调理| 叶芽是什么| 安乃近是什么药| 肛门潮湿用什么药| 遗精吃什么药最好| 什么是极差| 三油甘脂是什么| 甘油三酯高是什么原因| 丹参粉有什么作用和功效| prl是什么意思| 荠菜长什么样| 腋下痛是什么病| 蝎子泡酒有什么功效| 感冒吃什么水果好| pca是什么意思| 什么叫间质瘤| 什么的双手| 双眸是什么意思| 梦见养猪是什么意思| 心率低于60说明什么| 顺字五行属什么| 卷饼卷什么菜好吃| 柏读什么| 麻小是什么意思| 百度???? ????? ???

宁夏政府党组召开理论中心组(扩大)学习会议

???? ??? ?????? ???????? ???
百度 (凤凰网WEMONEY秦玮/编辑)附《2018年,红岭创投的自我革命》全文:2018年,红岭创投的自我革命红岭创投九周年,五十周岁的老周不再任性,红岭创投的自我革命不是悲情的宣泄,而是破除一切固有顽疾获得新生的期待,经过充分的准备,倒计时已经开启,网贷备案的契机,对红岭创投正是一次难得的机遇期。

Documentation for this module may be created at ??????:TableTools/doc

--[[
------------------------------------------------------------------------------------
--                               TableTools                                       --
--                                                                                --
-- This module includes a number of functions for dealing with Lua tables.        --
-- It is a meta-module, meant to be called from other Lua modules, and should     --
-- not be called directly from #invoke.                                           --
------------------------------------------------------------------------------------
--]]

local libraryUtil = require('libraryUtil')

local p = {}

-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti

--[[
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
--]]
function p.isPositiveInteger(v)
	if type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity then
		return true
	else
		return false
	end
end

--[[
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a value can be a valid table key. Lua will
-- generate an error if a NaN is used as a table key.
------------------------------------------------------------------------------------
--]]
function p.isNan(v)
	if type(v) == 'number' and tostring(v) == '-nan' then
		return true
	else
		return false
	end
end

--[[
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
--]]
function p.shallowClone(t)
	local ret = {}
	for k, v in pairs(t) do
		ret[k] = v
	end
	return ret
end

--[[
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
--]]
function p.removeDuplicates(t)
	checkType('removeDuplicates', 1, t, 'table')
	local isNan = p.isNan
	local ret, exists = {}, {}
	for i, v in ipairs(t) do
		if isNan(v) then
			-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
			ret[#ret + 1] = v
		else
			if not exists[v] then
				ret[#ret + 1] = v
				exists[v] = true
			end
		end	
	end
	return ret
end			

--[[
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
--]]
function p.numKeys(t)
	checkType('numKeys', 1, t, 'table')
	local isPositiveInteger = p.isPositiveInteger
	local nums = {}
	for k, v in pairs(t) do
		if isPositiveInteger(k) then
			nums[#nums + 1] = k
		end
	end
	table.sort(nums)
	return nums
end

--[[
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will
-- return {1, 3, 6}.
------------------------------------------------------------------------------------
--]]
function p.affixNums(t, prefix, suffix)
	checkType('affixNums', 1, t, 'table')
	checkType('affixNums', 2, prefix, 'string', true)
	checkType('affixNums', 3, suffix, 'string', true)

	local function cleanPattern(s)
		-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
		s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
		return s
	end

	prefix = prefix or ''
	suffix = suffix or ''
	prefix = cleanPattern(prefix)
	suffix = cleanPattern(suffix)
	local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'

	local nums = {}
	for k, v in pairs(t) do
		if type(k) == 'string' then			
			local num = mw.ustring.match(k, pattern)
			if num then
				nums[#nums + 1] = tonumber(num)
			end
		end
	end
	table.sort(nums)
	return nums
end

--[[
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like ("foo1", "bar1", "foo2", "baz2"), returns a table
-- of subtables in the format 
-- { [1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'} }
-- Keys that don't end with an integer are stored in a subtable named "other".
-- The compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.numData(t, compress)
	checkType('numData', 1, t, 'table')
	checkType('numData', 2, compress, 'boolean', true)
	local ret = {}
	for k, v in pairs(t) do
		local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
		if num then
			num = tonumber(num)
			local subtable = ret[num] or {}
			if prefix == '' then
				-- Positional parameters match the blank string; put them at the start of the subtable instead.
				prefix = 1
			end
			subtable[prefix] = v
			ret[num] = subtable
		else
			local subtable = ret.other or {}
			subtable[k] = v
			ret.other = subtable
		end
	end
	if compress then
		local other = ret.other
		ret = p.compressSparseArray(ret)
		ret.other = other
	end
	return ret
end

--[[
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.compressSparseArray(t)
	checkType('compressSparseArray', 1, t, 'table')
	local ret = {}
	local nums = p.numKeys(t)
	for _, num in ipairs(nums) do
		ret[#ret + 1] = t[num]
	end
	return ret
end

--[[
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
--]]
function p.sparseIpairs(t)
	checkType('sparseIpairs', 1, t, 'table')
	local nums = p.numKeys(t)
	local i = 0
	local lim = #nums
	return function ()
		i = i + 1
		if i <= lim then
			local key = nums[i]
			return key, t[key]
		else
			return nil, nil
		end
	end
end

--[[
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
--]]

function p.size(t)
	checkType('size', 1, t, 'table')
	local i = 0
	for k in pairs(t) do
		i = i + 1
	end
	return i
end


local function defaultKeySort(item1, item2)
	-- "number" < "string", so numbers will be sorted before strings.
	local type1, type2 = type(item1), type(item2)
	if type1 ~= type2 then
		return type1 < type2
	else -- This will fail with table, boolean, function.
		return item1 < item2
	end
end

--[[
	Returns a list of the keys in a table, sorted using either a default
	comparison function or a custom keySort function.
]]
function p.keysToList(t, keySort, checked)
	if not checked then
		checkType('keysToList', 1, t, 'table')
		checkTypeMulti('keysToList', 2, keySort, { 'function', 'boolean', 'nil' })
	end
	
	local list = {}
	local index = 1
	for key, value in pairs(t) do
		list[index] = key
		index = index + 1
	end
	
	if keySort ~= false then
		keySort = type(keySort) == 'function' and keySort or defaultKeySort
		
		table.sort(list, keySort)
	end
	
	return list
end

--[[
	Iterates through a table, with the keys sorted using the keysToList function.
	If there are only numerical keys, sparseIpairs is probably more efficient.
]]
function p.sortedPairs(t, keySort)
	checkType('sortedPairs', 1, t, 'table')
	checkType('sortedPairs', 2, keySort, 'function', true)
	
	local list = p.keysToList(t, keySort, true)
	
	local i = 0
	return function()
		i = i + 1
		local key = list[i]
		if key ~= nil then
			return key, t[key]
		else
			return nil, nil
		end
	end
end

--[[
	Returns true if all keys in the table are consecutive integers starting at 1.
--]]
function p.isArray(t)
	checkType("isArray", 1, t, "table")
	
	local i = 0
	for k, v in pairs(t) do
		i = i + 1
		if t[i] == nil then
			return false
		end
	end
	return true
end

-- { "a", "b", "c" } -> { a = 1, b = 2, c = 3 }
function p.invert(array)
	checkType("invert", 1, array, "table")
	
	local map = {}
	for i, v in ipairs(array) do
		map[v] = i
	end
	
	return map
end

--[[
	{ "a", "b", "c" } -> { ["a"] = true, ["b"] = true, ["c"] = true }
--]]
function p.listToSet(t)
	checkType("listToSet", 1, t, "table")
	
	local set = {}
	for _, item in ipairs(t) do
		set[item] = true
	end
	
	return set
end

--[[
	Recursive deep copy function.
	Preserves identities of subtables.
	
]]
local function _deepCopy(orig, includeMetatable, already_seen)
	-- Stores copies of tables indexed by the original table.
	already_seen = already_seen or {}
	
	local copy = already_seen[orig]
	if copy ~= nil then
		return copy
	end
	
	if type(orig) == 'table' then
		copy = {}
		for orig_key, orig_value in pairs(orig) do
			copy[deepcopy(orig_key, includeMetatable, already_seen)] = deepcopy(orig_value, includeMetatable, already_seen)
		end
		already_seen[orig] = copy
		
		if includeMetatable then
			local mt = getmetatable(orig)
			if mt ~= nil then
				local mt_copy = deepcopy(mt, includeMetatable, already_seen)
				setmetatable(copy, mt_copy)
				already_seen[mt] = mt_copy
			end
		end
	else -- number, string, boolean, etc
		copy = orig
	end
	return copy
end

function p.deepCopy(orig, noMetatable, already_seen)
	checkType("deepCopy", 3, already_seen, "table", true)
	
	return _deepCopy(orig, not noMetatable, already_seen)
end

--[[
	Concatenates all values in the table that are indexed by a number, in order.
	sparseConcat{ a, nil, c, d }  =>  "acd"
	sparseConcat{ nil, b, c, d }  =>  "bcd"
]]
function p.sparseConcat(t, sep, i, j)
	local list = {}
	
	local list_i = 0
	for _, v in p.sparseIpairs(t) do
		list_i = list_i + 1
		list[list_i] = v
	end
	
	return table.concat(list, sep, i, j)
end

--[[
-- This returns the length of a table, or the first integer key n counting from
-- 1 such that t[n + 1] is nil. It is similar to the operator #, but may return
-- a different value when there are gaps in the array portion of the table.
-- Intended to be used on data loaded with mw.loadData. For other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of 
-- the number of unnamed template parameters, so use this function for
-- frame.args.
--]]
function p.length(t)
	local i = 1
	while t[i] ~= nil do
		i = i + 1
	end
	return i - 1
end

function p.inArray(arr, valueToFind)
	checkType("inArray", 1, arr, "table")
	
	-- if valueToFind is nil, error?
	
	for _, v in ipairs(arr) do
		if v == valueToFind then
			return true
		end
	end
	
	return false
end

return p
挂绿荔枝为什么那么贵 刮骨疗毒的意思是什么 维生素b6有什么作用和功效 朗朗原名叫什么 mild是什么意思
岁贡生是什么意思 谣言是什么意思 兰花代表什么象征意义 送什么礼品好 脸一边大一边小是什么原因
八一是什么节 10月1什么星座 妈祖是什么 嘌呤是什么意思 拍肺部ct挂什么科
为什么会血压低 征兵什么时候开始 什么水果止咳 一个齿一个禹念什么 条的偏旁是什么
什么是新陈代谢hcv8jop6ns2r.cn 湿气是什么原因造成的bfb118.com 脚趾甲变厚是什么原因hcv9jop0ns1r.cn 老人适合喝什么茶hcv7jop6ns4r.cn 范思哲香水是什么档次hcv9jop5ns6r.cn
向内求什么意思hcv8jop4ns3r.cn 壁虎属于什么类动物hcv8jop4ns7r.cn 流清口水是什么原因hcv9jop6ns5r.cn 骶髂关节在什么位置hcv9jop5ns8r.cn 减肥早餐吃什么最好hcv8jop6ns7r.cn
流连忘返是什么生肖hcv8jop0ns3r.cn 尿素高是什么意思hcv8jop1ns4r.cn 干眼症是什么hcv8jop8ns8r.cn 大便潜血弱阳性是什么原因hcv8jop9ns5r.cn 为什么打呼噜dayuxmw.com
好老公的标准是什么hcv7jop9ns2r.cn 食欲不振吃什么药hcv8jop4ns8r.cn 经期可以吃什么水果hcv9jop2ns0r.cn dna里面有什么hcv8jop6ns5r.cn 舅舅的儿子叫什么hcv8jop7ns4r.cn
百度