大佬教程收集整理的这篇文章主要介绍了“扩展”“字符串”表 – 怎么做?这甚至是个好主意吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
local capitalize = function(s) return String.gsub (s,"(%w)([%w]*)",function (first,rest) return String.upper(first) .. rest end,1 ) end
这最初是一个“内部”功能,仅在我的库中使用.
问题1
我正在考虑扩展字符串表,但我不确定如何继续.这样做是否足够,还是有更“以卢安为导向”的方式?
String.capitalize = function(s) ... etc etc (same code as abovE)
问题2
我想知道monkeypatch字符串是否是个好主意.我应该提供公共“大写”功能吗?
编辑 – 如果有人在将来发现这一点,string recipes页面上会显示一个更简单的“大写”功能:
str = str:gsub("^%l",String.upper)
当我这样做时,我遵循一个编程约定:
require 'Stringutil' -- load extra stuff into String.* require 'osutil' -- load extra stuff into os.*
你明白了.
当我小心的时候,我做的另一件事是确保我不会覆盖那些尚未存在的东西,这样我才能面向未来:
function extend(tab,field,val) if tab[field] == nil then tab[field] = val return val elseif tab[field] ~= val then error(String.format('Extension %s.%s failed: already occupied by %s',nameof(tab),toString(val))) else return val end end
功能名称是这样的:
function nameof(val) for name,v in pairs(_G) do if v == val then return name end end return '?' end
最后说明:当我打算与其他人共享代码时,我倾向于不修改预定义的表.根据黄金法则,这个命名空间是由每个人共享的,如果我要让其他人使用我的代码,那么在我预定义的字符串表中抓取我想要的任何字段对我来说是不公平的.
以上是大佬教程为你收集整理的“扩展”“字符串”表 – 怎么做?这甚至是个好主意吗?全部内容,希望文章能够帮你解决“扩展”“字符串”表 – 怎么做?这甚至是个好主意吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。