X++ StrFix方法
Global类里提供了两个方法strRFix和strLRfix,方法的实现如下:
1 static str strRFix(str _str, int _length, char _char = ' ') 2 { 3 return strRep(_char, _length - strLen(_str)) + subStr(_str, 1, _length); 4 } 5 static str strLFix(str _str, int _length, char _char = ' ') 6 { 7 return subStr(_str, 1, _length) + strRep(_char, _length - strLen(_str)); 8 }
我一直理解这个这两个方法是用来补位的,就是某个字符串长度如果不够某个长度,就用某个字符补齐到这个长度,跟C#的字符串方法PadLeft和PadRight是一样的。
实际上用了这么多年也一直是没问题的,所以也从来没去看这个方法的源码和方法说明。
直到最近遇到一个情况,传入的字符串的长度小于了指定的长度,C#里的PadLeft和PadRight的逻辑是如果遇到这种情况是直接返回源字符串的。
而X++里的StrRFix和strLFix的逻辑是如果遇到这种情况,它就变成subStr了。
所以常用的方法,还是要看方法说明,不能想当然,不过这个strRFix和strLFix搞成这样也是醉了,你一个方法就干一个事就得了,补位补位,截位就截位,合在一起埋个坑有意思?
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步