github.com/PandaGoAdmin/utils@v0.0.0-20211208134815-d5461603a00f/docs/v0.1.7.md (about)

     1  # kgo
     2  
     3      import "github.com/PandaGoAdmin/utils"
     4  
     5  
     6  ## Usage
     7  
     8  ```go
     9  const (
    10  	// Version 版本号
    11  	Version = "0.1.7"
    12  
    13  	Unknown = "Unknown"
    14  
    15  	//UINT_MAX 无符号整型uint最大值
    16  	UINT_MAX = ^uint(0)
    17  
    18  	//UINT8_MAX 无符号整型uint8最大值, 255
    19  	UINT8_MAX = ^uint8(0)
    20  
    21  	//UINT16_MAX 无符号整型uint16最大值, 65535
    22  	UINT16_MAX = ^uint16(0)
    23  
    24  	//UINT32_MAX 无符号整型uint32最大值, 4294967295
    25  	UINT32_MAX = ^uint32(0)
    26  
    27  	//UINT64_MAX 无符号整型uint64最大值, 18446744073709551615
    28  	UINT64_MAX = ^uint64(0)
    29  
    30  	//INT_MAX 有符号整型int最大值
    31  	INT_MAX = int(^uint(0) >> 1)
    32  	//INT_MIN 有符号整型int最小值
    33  	INT_MIN = ^INT_MAX
    34  
    35  	//INT32_MAX 有符号整型int32最大值, 2147483647
    36  	INT32_MAX = int32(^uint32(0) >> 1)
    37  	//INT32_MIN 有符号整型int32最小值, -2147483648
    38  	INT32_MIN = ^INT32_MAX
    39  
    40  	//INT64_MAX 有符号整型int64最大值, 9223372036854775807
    41  	INT64_MAX = int64(^uint64(0) >> 1)
    42  	//INT64_MIN 有符号整型int64最小值, -9223372036854775808
    43  	INT64_MIN = ^INT64_MAX
    44  
    45  	// FILE_COVER_ALLOW 文件覆盖,允许
    46  	FILE_COVER_ALLOW LkkFileCover = 1
    47  	// FILE_COVER_IGNORE 文件覆盖,忽略
    48  	FILE_COVER_IGNORE LkkFileCover = 0
    49  	// FILE_COVER_DENY 文件覆盖,禁止
    50  	FILE_COVER_DENY LkkFileCover = -1
    51  
    52  	// FILE_TYPE_ANY 文件类型-任意
    53  	FILE_TYPE_ANY LkkFileType = 0
    54  	// FILE_TYPE_LINK 文件类型-链接文件
    55  	FILE_TYPE_LINK LkkFileType = 1
    56  	// FILE_TYPE_REGULAR 文件类型-常规文件(不包括链接)
    57  	FILE_TYPE_REGULAR LkkFileType = 2
    58  	// FILE_TYPE_COMMON 文件类型-普通文件(包括常规和链接)
    59  	FILE_TYPE_COMMON LkkFileType = 3
    60  
    61  	// FILE_TREE_ALL 文件树,查找所有(包括目录和文件)
    62  	FILE_TREE_ALL LkkFileTree = 3
    63  	// FILE_TREE_DIR 文件树,仅查找目录
    64  	FILE_TREE_DIR LkkFileTree = 2
    65  	// FILE_TREE_FILE 文件树,仅查找文件
    66  	FILE_TREE_FILE LkkFileTree = 1
    67  
    68  	// RAND_STRING_ALPHA 随机字符串类型,字母
    69  	RAND_STRING_ALPHA LkkRandString = 0
    70  	// RAND_STRING_NUMERIC 随机字符串类型,数值
    71  	RAND_STRING_NUMERIC LkkRandString = 1
    72  	// RAND_STRING_ALPHANUM 随机字符串类型,字母+数值
    73  	RAND_STRING_ALPHANUM LkkRandString = 2
    74  	// RAND_STRING_SPECIAL 随机字符串类型,字母+数值+特殊字符
    75  	RAND_STRING_SPECIAL LkkRandString = 3
    76  	// RAND_STRING_CHINESE 随机字符串类型,仅中文
    77  	RAND_STRING_CHINESE LkkRandString = 4
    78  
    79  	// CASE_NONE 忽略大小写
    80  	CASE_NONE LkkCaseSwitch = 0
    81  	// CASE_LOWER 检查小写
    82  	CASE_LOWER LkkCaseSwitch = 1
    83  	// CASE_UPPER 检查大写
    84  	CASE_UPPER LkkCaseSwitch = 2
    85  
    86  	// PAD_LEFT 左侧填充
    87  	PAD_LEFT LkkPadType = 0
    88  	// PAD_RIGHT 右侧填充
    89  	PAD_RIGHT LkkPadType = 1
    90  	// PAD_BOTH 两侧填充
    91  	PAD_BOTH LkkPadType = 2
    92  
    93  	// PKCS_NONE 不进行填充
    94  	PKCS_NONE LkkPKCSType = -1
    95  	// PKCS_ZERO PKCS 0值填充
    96  	PKCS_ZERO LkkPKCSType = 0
    97  	// PKCS_SEVEN 即PKCS7
    98  	PKCS_SEVEN LkkPKCSType = 7
    99  
   100  	// COMPARE_ONLY_VALUE 仅比较值
   101  	COMPARE_ONLY_VALUE LkkArrCompareType = 0
   102  	// COMPARE_ONLY_KEY 仅比较键
   103  	COMPARE_ONLY_KEY LkkArrCompareType = 1
   104  	// COMPARE_BOTH_KEYVALUE 同时比较键和值
   105  	COMPARE_BOTH_KEYVALUE LkkArrCompareType = 2
   106  
   107  	//默认浮点数精确小数位数
   108  	FLOAT_DECIMAL uint8 = 8
   109  
   110  	//AuthCode 动态密钥长度,须<32
   111  	DYNAMIC_KEY_LEN = 8
   112  
   113  	//检查连接超时的时间
   114  	CHECK_CONNECT_TIMEOUT = time.Second * 5
   115  
   116  	// 正则模式-全中文
   117  	PATTERN_CHINESE_ALL = "^[\u4e00-\u9fa5]+$"
   118  
   119  	// 正则模式-中文名称
   120  	PATTERN_CHINESE_NAME = "^[\u4e00-\u9fa5][.•·\u4e00-\u9fa5]{0,30}[\u4e00-\u9fa5]$"
   121  
   122  	// 正则模式-多字节字符
   123  	PATTERN_MULTIBYTE = "[^\x00-\x7F]"
   124  
   125  	// 正则模式-ASCII字符
   126  	PATTERN_ASCII = "^[\x00-\x7F]+$"
   127  
   128  	// 正则模式-全角字符
   129  	PATTERN_FULLWIDTH = "[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]"
   130  
   131  	// 正则模式-半角字符
   132  	PATTERN_HALFWIDTH = "[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]"
   133  
   134  	// 正则模式-词语,不以下划线开头的中文、英文、数字、下划线
   135  	PATTERN_WORD = "^[a-zA-Z0-9\u4e00-\u9fa5][a-zA-Z0-9_\u4e00-\u9fa5]+$"
   136  
   137  	// 正则模式-浮点数
   138  	PATTERN_FLOAT = `^(-?\d+)(\.\d+)`
   139  
   140  	// 正则模式-邮箱
   141  	PATTERN_EMAIL = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
   142  
   143  	// 正则模式-用户名-英文
   144  	PATTERN_USERNAMEEN = `^[a-zA-Z0-9_.]+$`
   145  
   146  	// 正则模式-大陆手机号
   147  	PATTERN_MOBILECN = `^1[3-9]\d{9}$`
   148  
   149  	// 正则模式-固定电话
   150  	PATTERN_TEL_FIX = `^(010|02\d{1}|0[3-9]\d{2})-\d{7,9}(-\d+)?$`
   151  
   152  	// 正则模式-400或800
   153  	PATTERN_TEL_4800 = `^[48]00\d?(-?\d{3,4}){2}$`
   154  
   155  	// 正则模式-座机号(固定电话或400或800)
   156  	PATTERN_TELEPHONE = `(` + PATTERN_TEL_FIX + `)|(` + PATTERN_TEL_4800 + `)`
   157  
   158  	// 正则模式-电话(手机或固话)
   159  	PATTERN_PHONE = `(` + PATTERN_MOBILECN + `)|(` + PATTERN_TEL_FIX + `)`
   160  
   161  	// 正则模式-日期时间
   162  	PATTERN_DATETIME = `^[0-9]{4}(|\-[0-9]{2}(|\-[0-9]{2}(|\s+[0-9]{2}(|:[0-9]{2}(|:[0-9]{2})))))$`
   163  
   164  	// 正则模式-身份证号码,18位或15位
   165  	PATTERN_CREDIT_NO = `(^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)`
   166  
   167  	// 正则模式-小写英文
   168  	PATTERN_ALPHA_LOWER = `^[a-z]+$`
   169  
   170  	// 正则模式-大写英文
   171  	PATTERN_ALPHA_UPPER = `^[A-Z]+$`
   172  
   173  	// 正则模式-字母或数字
   174  	PATTERN_ALPHA_NUMERIC = `^[a-zA-Z0-9]+$`
   175  
   176  	// 正则模式-十六进制颜色
   177  	PATTERN_HEXCOLOR = `^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$`
   178  
   179  	// 正则模式-RGB颜色
   180  	PATTERN_RGBCOLOR = "^rgb\\(\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*(0|[1-9]\\d?|1\\d\\d?|2[0-4]\\d|25[0-5])\\s*\\)$"
   181  
   182  	// 正则模式-全空白字符
   183  	PATTERN_WHITESPACE_ALL = "^[[:space:]]+$"
   184  
   185  	// 正则模式-带空白字符
   186  	PATTERN_WHITESPACE_HAS = ".*[[:space:]]"
   187  
   188  	// 正则模式-连续空白符
   189  	PATTERN_WHITESPACE_DUPLICATE = `[[:space:]]{2,}|[\s\p{Zs}]{2,}`
   190  
   191  	// 正则模式-base64字符串
   192  	PATTERN_BASE64 = "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=|[A-Za-z0-9+\\/]{4})$"
   193  
   194  	// 正则模式-base64编码图片
   195  	PATTERN_BASE64_IMAGE = `^data:\s*(image|img)\/(\w+);base64`
   196  
   197  	// 正则模式-html标签
   198  	PATTERN_HTML_TAGS = `<(.|\n)*?>`
   199  
   200  	// 正则模式-DNS名称
   201  	PATTERN_DNSNAME = `^([a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62}){1}(\.[a-zA-Z0-9_]{1}[a-zA-Z0-9_-]{0,62})*[\._]?$`
   202  
   203  	// 正则模式-MD5
   204  	PATTERN_MD5 = `^(?i)([0-9a-h]{32})$`
   205  
   206  	// 正则模式-SHA1
   207  	PATTERN_SHA1 = `^(?i)([0-9a-h]{40})$`
   208  
   209  	// 正则模式-SHA256
   210  	PATTERN_SHA256 = `^(?i)([0-9a-h]{64})$`
   211  
   212  	// 正则模式-SHA512
   213  	PATTERN_SHA512 = `^(?i)([0-9a-h]{128})$`
   214  
   215  	//正则模式-等式 x = y
   216  	PATTERN_EQUATION = `['"]?([\w\-]+)['"]?[\s]*=[\s]*['"]?(.*)['"]?`
   217  
   218  	// 正则模式-emoji表情符
   219  	PATTERN_EMOJI = `[\x{1F3F4}](?:\x{E0067}\x{E0062}\x{E0077}\x{E006C}\x{E0073}\x{E007F})|[\x{1F3F4}](?:\x{E0067}\x{E0062}\x{E0073}\x{E0063}\x{E0074}\x{E007F})|[\x{1F3F4}](?:\x{E0067}\x{E0062}\x{E0065}\x{E006E}\x{E0067}\x{E007F})|[\x{1F3F4}](?:\x{200D}\x{2620}\x{FE0F})|[\x{1F3F3}](?:\x{FE0F}\x{200D}\x{1F308})|[\x{0023}\x{002A}\x{0030}\x{0031}\x{0032}\x{0033}\x{0034}\x{0035}\x{0036}\x{0037}\x{0038}\x{0039}](?:\x{FE0F}\x{20E3})|[\x{1F441}](?:\x{FE0F}\x{200D}\x{1F5E8}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F467}\x{200D}\x{1F467})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F467}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F467})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F466}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F466})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F467}\x{200D}\x{1F467})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F466}\x{200D}\x{1F466})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F467}\x{200D}\x{1F466})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F467})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F467}\x{200D}\x{1F467})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F466}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F467}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F467})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F466})|[\x{1F469}](?:\x{200D}\x{2764}\x{FE0F}\x{200D}\x{1F469})|[\x{1F469}\x{1F468}](?:\x{200D}\x{2764}\x{FE0F}\x{200D}\x{1F468})|[\x{1F469}](?:\x{200D}\x{2764}\x{FE0F}\x{200D}\x{1F48B}\x{200D}\x{1F469})|[\x{1F469}\x{1F468}](?:\x{200D}\x{2764}\x{FE0F}\x{200D}\x{1F48B}\x{200D}\x{1F468})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F9B3})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F9B3})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F9B3})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F9B3})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F9B3})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9B3})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F9B2})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F9B2})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F9B2})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F9B2})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F9B2})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9B2})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F9B1})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F9B1})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F9B1})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F9B1})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F9B1})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9B1})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F9B0})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F9B0})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F9B0})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F9B0})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F9B0})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9B0})|[\x{1F575}\x{1F3CC}\x{26F9}\x{1F3CB}](?:\x{FE0F}\x{200D}\x{2640}\x{FE0F})|[\x{1F575}\x{1F3CC}\x{26F9}\x{1F3CB}](?:\x{FE0F}\x{200D}\x{2642}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FF}\x{200D}\x{2640}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FE}\x{200D}\x{2640}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FD}\x{200D}\x{2640}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FC}\x{200D}\x{2640}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FB}\x{200D}\x{2640}\x{FE0F})|[\x{1F46E}\x{1F9B8}\x{1F9B9}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F9DE}\x{1F9DF}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F46F}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93C}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{200D}\x{2640}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FF}\x{200D}\x{2642}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FE}\x{200D}\x{2642}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FD}\x{200D}\x{2642}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FC}\x{200D}\x{2642}\x{FE0F})|[\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{1F3FB}\x{200D}\x{2642}\x{FE0F})|[\x{1F46E}\x{1F9B8}\x{1F9B9}\x{1F482}\x{1F477}\x{1F473}\x{1F471}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F9DE}\x{1F9DF}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F46F}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93C}\x{1F93D}\x{1F93E}\x{1F939}](?:\x{200D}\x{2642}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F692})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F692})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F692})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F692})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F692})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F692})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F680})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F680})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F680})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F680})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F680})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F680})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{2708}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{2708}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{2708}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{2708}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{2708}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{200D}\x{2708}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F3A8})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F3A8})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F3A8})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F3A8})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F3A8})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F3A8})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F3A4})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F3A4})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F3A4})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F3A4})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F3A4})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F3A4})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F4BB})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F4BB})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F4BB})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F4BB})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F4BB})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F4BB})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F52C})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F52C})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F52C})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F52C})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F52C})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F52C})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F4BC})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F4BC})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F4BC})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F4BC})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F4BC})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F4BC})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F3ED})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F3ED})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F3ED})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F3ED})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F3ED})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F3ED})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F527})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F527})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F527})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F527})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F527})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F527})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F373})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F373})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F373})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F373})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F373})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F373})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F33E})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F33E})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F33E})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F33E})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F33E})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F33E})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{2696}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{2696}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{2696}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{2696}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{2696}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{200D}\x{2696}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F3EB})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F3EB})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F3EB})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F3EB})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F3EB})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F3EB})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{1F393})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{1F393})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{1F393})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{1F393})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{1F393})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F393})|[\x{1F468}\x{1F469}](?:\x{1F3FF}\x{200D}\x{2695}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FE}\x{200D}\x{2695}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FD}\x{200D}\x{2695}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FC}\x{200D}\x{2695}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{1F3FB}\x{200D}\x{2695}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{200D}\x{2695}\x{FE0F})|[\x{1F476}\x{1F9D2}\x{1F466}\x{1F467}\x{1F9D1}\x{1F468}\x{1F469}\x{1F9D3}\x{1F474}\x{1F475}\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F934}\x{1F478}\x{1F473}\x{1F472}\x{1F9D5}\x{1F9D4}\x{1F471}\x{1F935}\x{1F470}\x{1F930}\x{1F931}\x{1F47C}\x{1F385}\x{1F936}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F483}\x{1F57A}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F6C0}\x{1F6CC}\x{1F574}\x{1F3C7}\x{1F3C2}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}\x{1F933}\x{1F4AA}\x{1F9B5}\x{1F9B6}\x{1F448}\x{1F449}\x{261D}\x{1F446}\x{1F595}\x{1F447}\x{270C}\x{1F91E}\x{1F596}\x{1F918}\x{1F919}\x{1F590}\x{270B}\x{1F44C}\x{1F44D}\x{1F44E}\x{270A}\x{1F44A}\x{1F91B}\x{1F91C}\x{1F91A}\x{1F44B}\x{1F91F}\x{270D}\x{1F44F}\x{1F450}\x{1F64C}\x{1F932}\x{1F64F}\x{1F485}\x{1F442}\x{1F443}](?:\x{1F3FF})|[\x{1F476}\x{1F9D2}\x{1F466}\x{1F467}\x{1F9D1}\x{1F468}\x{1F469}\x{1F9D3}\x{1F474}\x{1F475}\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F934}\x{1F478}\x{1F473}\x{1F472}\x{1F9D5}\x{1F9D4}\x{1F471}\x{1F935}\x{1F470}\x{1F930}\x{1F931}\x{1F47C}\x{1F385}\x{1F936}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F483}\x{1F57A}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F6C0}\x{1F6CC}\x{1F574}\x{1F3C7}\x{1F3C2}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}\x{1F933}\x{1F4AA}\x{1F9B5}\x{1F9B6}\x{1F448}\x{1F449}\x{261D}\x{1F446}\x{1F595}\x{1F447}\x{270C}\x{1F91E}\x{1F596}\x{1F918}\x{1F919}\x{1F590}\x{270B}\x{1F44C}\x{1F44D}\x{1F44E}\x{270A}\x{1F44A}\x{1F91B}\x{1F91C}\x{1F91A}\x{1F44B}\x{1F91F}\x{270D}\x{1F44F}\x{1F450}\x{1F64C}\x{1F932}\x{1F64F}\x{1F485}\x{1F442}\x{1F443}](?:\x{1F3FE})|[\x{1F476}\x{1F9D2}\x{1F466}\x{1F467}\x{1F9D1}\x{1F468}\x{1F469}\x{1F9D3}\x{1F474}\x{1F475}\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F934}\x{1F478}\x{1F473}\x{1F472}\x{1F9D5}\x{1F9D4}\x{1F471}\x{1F935}\x{1F470}\x{1F930}\x{1F931}\x{1F47C}\x{1F385}\x{1F936}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F483}\x{1F57A}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F6C0}\x{1F6CC}\x{1F574}\x{1F3C7}\x{1F3C2}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}\x{1F933}\x{1F4AA}\x{1F9B5}\x{1F9B6}\x{1F448}\x{1F449}\x{261D}\x{1F446}\x{1F595}\x{1F447}\x{270C}\x{1F91E}\x{1F596}\x{1F918}\x{1F919}\x{1F590}\x{270B}\x{1F44C}\x{1F44D}\x{1F44E}\x{270A}\x{1F44A}\x{1F91B}\x{1F91C}\x{1F91A}\x{1F44B}\x{1F91F}\x{270D}\x{1F44F}\x{1F450}\x{1F64C}\x{1F932}\x{1F64F}\x{1F485}\x{1F442}\x{1F443}](?:\x{1F3FD})|[\x{1F476}\x{1F9D2}\x{1F466}\x{1F467}\x{1F9D1}\x{1F468}\x{1F469}\x{1F9D3}\x{1F474}\x{1F475}\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F934}\x{1F478}\x{1F473}\x{1F472}\x{1F9D5}\x{1F9D4}\x{1F471}\x{1F935}\x{1F470}\x{1F930}\x{1F931}\x{1F47C}\x{1F385}\x{1F936}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F483}\x{1F57A}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F6C0}\x{1F6CC}\x{1F574}\x{1F3C7}\x{1F3C2}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}\x{1F933}\x{1F4AA}\x{1F9B5}\x{1F9B6}\x{1F448}\x{1F449}\x{261D}\x{1F446}\x{1F595}\x{1F447}\x{270C}\x{1F91E}\x{1F596}\x{1F918}\x{1F919}\x{1F590}\x{270B}\x{1F44C}\x{1F44D}\x{1F44E}\x{270A}\x{1F44A}\x{1F91B}\x{1F91C}\x{1F91A}\x{1F44B}\x{1F91F}\x{270D}\x{1F44F}\x{1F450}\x{1F64C}\x{1F932}\x{1F64F}\x{1F485}\x{1F442}\x{1F443}](?:\x{1F3FC})|[\x{1F476}\x{1F9D2}\x{1F466}\x{1F467}\x{1F9D1}\x{1F468}\x{1F469}\x{1F9D3}\x{1F474}\x{1F475}\x{1F46E}\x{1F575}\x{1F482}\x{1F477}\x{1F934}\x{1F478}\x{1F473}\x{1F472}\x{1F9D5}\x{1F9D4}\x{1F471}\x{1F935}\x{1F470}\x{1F930}\x{1F931}\x{1F47C}\x{1F385}\x{1F936}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F647}\x{1F926}\x{1F937}\x{1F486}\x{1F487}\x{1F6B6}\x{1F3C3}\x{1F483}\x{1F57A}\x{1F9D6}\x{1F9D7}\x{1F9D8}\x{1F6C0}\x{1F6CC}\x{1F574}\x{1F3C7}\x{1F3C2}\x{1F3CC}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{26F9}\x{1F3CB}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93D}\x{1F93E}\x{1F939}\x{1F933}\x{1F4AA}\x{1F9B5}\x{1F9B6}\x{1F448}\x{1F449}\x{261D}\x{1F446}\x{1F595}\x{1F447}\x{270C}\x{1F91E}\x{1F596}\x{1F918}\x{1F919}\x{1F590}\x{270B}\x{1F44C}\x{1F44D}\x{1F44E}\x{270A}\x{1F44A}\x{1F91B}\x{1F91C}\x{1F91A}\x{1F44B}\x{1F91F}\x{270D}\x{1F44F}\x{1F450}\x{1F64C}\x{1F932}\x{1F64F}\x{1F485}\x{1F442}\x{1F443}](?:\x{1F3FB})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1E9}\x{1F1F0}\x{1F1F2}\x{1F1F3}\x{1F1F8}\x{1F1F9}\x{1F1FA}](?:\x{1F1FF})|[\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1F0}\x{1F1F1}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1FA}](?:\x{1F1FE})|[\x{1F1E6}\x{1F1E8}\x{1F1F2}\x{1F1F8}](?:\x{1F1FD})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1F0}\x{1F1F2}\x{1F1F5}\x{1F1F7}\x{1F1F9}\x{1F1FF}](?:\x{1F1FC})|[\x{1F1E7}\x{1F1E8}\x{1F1F1}\x{1F1F2}\x{1F1F8}\x{1F1F9}](?:\x{1F1FB})|[\x{1F1E6}\x{1F1E8}\x{1F1EA}\x{1F1EC}\x{1F1ED}\x{1F1F1}\x{1F1F2}\x{1F1F3}\x{1F1F7}\x{1F1FB}](?:\x{1F1FA})|[\x{1F1E6}\x{1F1E7}\x{1F1EA}\x{1F1EC}\x{1F1ED}\x{1F1EE}\x{1F1F1}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FE}](?:\x{1F1F9})|[\x{1F1E6}\x{1F1E7}\x{1F1EA}\x{1F1EC}\x{1F1EE}\x{1F1F1}\x{1F1F2}\x{1F1F5}\x{1F1F7}\x{1F1F8}\x{1F1FA}\x{1F1FC}](?:\x{1F1F8})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EA}\x{1F1EB}\x{1F1EC}\x{1F1ED}\x{1F1EE}\x{1F1F0}\x{1F1F1}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F8}\x{1F1F9}](?:\x{1F1F7})|[\x{1F1E6}\x{1F1E7}\x{1F1EC}\x{1F1EE}\x{1F1F2}](?:\x{1F1F6})|[\x{1F1E8}\x{1F1EC}\x{1F1EF}\x{1F1F0}\x{1F1F2}\x{1F1F3}](?:\x{1F1F5})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1E9}\x{1F1EB}\x{1F1EE}\x{1F1EF}\x{1F1F2}\x{1F1F3}\x{1F1F7}\x{1F1F8}\x{1F1F9}](?:\x{1F1F4})|[\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1ED}\x{1F1EE}\x{1F1F0}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FA}\x{1F1FB}](?:\x{1F1F3})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1E9}\x{1F1EB}\x{1F1EC}\x{1F1ED}\x{1F1EE}\x{1F1EF}\x{1F1F0}\x{1F1F2}\x{1F1F4}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FA}\x{1F1FF}](?:\x{1F1F2})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1EE}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F8}\x{1F1F9}](?:\x{1F1F1})|[\x{1F1E8}\x{1F1E9}\x{1F1EB}\x{1F1ED}\x{1F1F1}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FD}](?:\x{1F1F0})|[\x{1F1E7}\x{1F1E9}\x{1F1EB}\x{1F1F8}\x{1F1F9}](?:\x{1F1EF})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EB}\x{1F1EC}\x{1F1F0}\x{1F1F1}\x{1F1F3}\x{1F1F8}\x{1F1FB}](?:\x{1F1EE})|[\x{1F1E7}\x{1F1E8}\x{1F1EA}\x{1F1EC}\x{1F1F0}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1F9}](?:\x{1F1ED})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1E9}\x{1F1EA}\x{1F1EC}\x{1F1F0}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FA}\x{1F1FB}](?:\x{1F1EC})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F9}\x{1F1FC}](?:\x{1F1EB})|[\x{1F1E6}\x{1F1E7}\x{1F1E9}\x{1F1EA}\x{1F1EC}\x{1F1EE}\x{1F1EF}\x{1F1F0}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F7}\x{1F1F8}\x{1F1FB}\x{1F1FE}](?:\x{1F1EA})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1EE}\x{1F1F2}\x{1F1F8}\x{1F1F9}](?:\x{1F1E9})|[\x{1F1E6}\x{1F1E8}\x{1F1EA}\x{1F1EE}\x{1F1F1}\x{1F1F2}\x{1F1F3}\x{1F1F8}\x{1F1F9}\x{1F1FB}](?:\x{1F1E8})|[\x{1F1E7}\x{1F1EC}\x{1F1F1}\x{1F1F8}](?:\x{1F1E7})|[\x{1F1E7}\x{1F1E8}\x{1F1EA}\x{1F1EC}\x{1F1F1}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F6}\x{1F1F8}\x{1F1F9}\x{1F1FA}\x{1F1FB}\x{1F1FF}](?:\x{1F1E6})|[\x{00A9}\x{00AE}\x{203C}\x{2049}\x{2122}\x{2139}\x{2194}-\x{2199}\x{21A9}-\x{21AA}\x{231A}-\x{231B}\x{2328}\x{23CF}\x{23E9}-\x{23F3}\x{23F8}-\x{23FA}\x{24C2}\x{25AA}-\x{25AB}\x{25B6}\x{25C0}\x{25FB}-\x{25FE}\x{2600}-\x{2604}\x{260E}\x{2611}\x{2614}-\x{2615}\x{2618}\x{261D}\x{2620}\x{2622}-\x{2623}\x{2626}\x{262A}\x{262E}-\x{262F}\x{2638}-\x{263A}\x{2640}\x{2642}\x{2648}-\x{2653}\x{2660}\x{2663}\x{2665}-\x{2666}\x{2668}\x{267B}\x{267E}-\x{267F}\x{2692}-\x{2697}\x{2699}\x{269B}-\x{269C}\x{26A0}-\x{26A1}\x{26AA}-\x{26AB}\x{26B0}-\x{26B1}\x{26BD}-\x{26BE}\x{26C4}-\x{26C5}\x{26C8}\x{26CE}-\x{26CF}\x{26D1}\x{26D3}-\x{26D4}\x{26E9}-\x{26EA}\x{26F0}-\x{26F5}\x{26F7}-\x{26FA}\x{26FD}\x{2702}\x{2705}\x{2708}-\x{270D}\x{270F}\x{2712}\x{2714}\x{2716}\x{271D}\x{2721}\x{2728}\x{2733}-\x{2734}\x{2744}\x{2747}\x{274C}\x{274E}\x{2753}-\x{2755}\x{2757}\x{2763}-\x{2764}\x{2795}-\x{2797}\x{27A1}\x{27B0}\x{27BF}\x{2934}-\x{2935}\x{2B05}-\x{2B07}\x{2B1B}-\x{2B1C}\x{2B50}\x{2B55}\x{3030}\x{303D}\x{3297}\x{3299}\x{1F004}\x{1F0CF}\x{1F170}-\x{1F171}\x{1F17E}-\x{1F17F}\x{1F18E}\x{1F191}-\x{1F19A}\x{1F201}-\x{1F202}\x{1F21A}\x{1F22F}\x{1F232}-\x{1F23A}\x{1F250}-\x{1F251}\x{1F300}-\x{1F321}\x{1F324}-\x{1F393}\x{1F396}-\x{1F397}\x{1F399}-\x{1F39B}\x{1F39E}-\x{1F3F0}\x{1F3F3}-\x{1F3F5}\x{1F3F7}-\x{1F3FA}\x{1F400}-\x{1F4FD}\x{1F4FF}-\x{1F53D}\x{1F549}-\x{1F54E}\x{1F550}-\x{1F567}\x{1F56F}-\x{1F570}\x{1F573}-\x{1F57A}\x{1F587}\x{1F58A}-\x{1F58D}\x{1F590}\x{1F595}-\x{1F596}\x{1F5A4}-\x{1F5A5}\x{1F5A8}\x{1F5B1}-\x{1F5B2}\x{1F5BC}\x{1F5C2}-\x{1F5C4}\x{1F5D1}-\x{1F5D3}\x{1F5DC}-\x{1F5DE}\x{1F5E1}\x{1F5E3}\x{1F5E8}\x{1F5EF}\x{1F5F3}\x{1F5FA}-\x{1F64F}\x{1F680}-\x{1F6C5}\x{1F6CB}-\x{1F6D2}\x{1F6E0}-\x{1F6E5}\x{1F6E9}\x{1F6EB}-\x{1F6EC}\x{1F6F0}\x{1F6F3}-\x{1F6F9}\x{1F910}-\x{1F93A}\x{1F93C}-\x{1F93E}\x{1F940}-\x{1F945}\x{1F947}-\x{1F970}\x{1F973}-\x{1F976}\x{1F97A}\x{1F97C}-\x{1F9A2}\x{1F9B0}-\x{1F9B9}\x{1F9C0}-\x{1F9C2}\x{1F9D0}-\x{1F9FF}]`
   220  )
   221  ```
   222  
   223  ```go
   224  var (
   225  	// Kuptime 当前服务启动时间
   226  	Kuptime = time.Now()
   227  
   228  	// KFile utilities
   229  	KFile LkkFile
   230  
   231  	// KStr utilities
   232  	KStr LkkString
   233  
   234  	// KNum utilities
   235  	KNum LkkNumber
   236  
   237  	// KArr utilities
   238  	KArr LkkArray
   239  
   240  	// KTime utilities
   241  	KTime LkkTime
   242  
   243  	// KConv utilities
   244  	KConv LkkConvert
   245  
   246  	// KOS utilities
   247  	KOS LkkOS
   248  
   249  	// KEncr utilities
   250  	KEncr LkkEncrypt
   251  
   252  	// KDbug utilities
   253  	KDbug LkkDebug
   254  
   255  	// KPrivCidrs 私有网段的CIDR数组
   256  	KPrivCidrs []*net.IPNet
   257  
   258  	// KDelimiter 本库自定义分隔符
   259  	KDelimiter = "$@#KSYS#@$"
   260  
   261  	// 身份证区域
   262  	CreditArea = map[string]string{"11": "北京", "12": "天津", "13": "河北", "14": "山西", "15": "内蒙古", "21": "辽宁", "22": "吉林", "23": "黑龙江", " 31": "上海", "32": "江苏", "33": "浙江", "34": "安徽", "35": "福建", "36": "江西", "37": "山东", "41": "河南", "42": "湖北", "43": "湖南", "44": "广东", "45": "广西", "46": "海南", "50": "重庆", "51": "四川", "52": "贵州", "53": "云南", "54": "西藏", "61": "陕西", "62": "甘肃", "63": "青海", "64": "宁夏", "65": "新疆", "71": "台湾", "81": "香港", "82": "澳门", "91": "国外"}
   263  
   264  	// 常用中文字符集
   265  	CommonChinese = []rune("们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这主中人上为来分生对于学下级地个用同行面说种过命度革而多子后自社加小机也经力线本电高量长党得实家定深法表着水理化争现所二起政三好十战无农使性前等反体合斗路图把结第里正新开论之物从当两些还天资事队批点育重其思与间内去因件日利相由压员气业代全组数果期导平各基或月毛然如应形想制心样干都向变关问比展那它最及外没看治提五解系林者米群头意只明四道马认次文通但条较克又公孔领军流入接席位情运器并飞原油放立题质指建区验活众很教决特此常石强极土少已根共直团统式转别造切九你取西持总料连任志观调七么山程百报更见必真保热委手改管处己将修支识病象几先老光专什六型具示复安带每东增则完风回南广劳轮科北打积车计给节做务被整联步类集号列温装即毫知轴研单色坚据速防史拉世设达尔场织历花受求传口断况采精金界品判参层止边清至万确究书术状厂须离再目海交权且儿青才证低越际八试规斯近注办布门铁需走议县兵固除般引齿千胜细影济白格效置推空配刀叶率述今选养德话查差半敌始片施响收华觉备名红续均药标记难存测士身紧液派准斤角降维板许破述技消底床田势端感往神便贺村构照容非搞亚磨族火段算适讲按值美态黄易彪服早班麦削信排台声该击素张密害侯草何树肥继右属市严径螺检左页抗苏显苦英快称坏移约巴材省黑武培著河帝仅针怎植京助升王眼她抓含苗副杂普谈围食射源例致酸旧却充足短划剂宣环落首尺波承粉践府鱼随考刻靠够满夫失包住促枝局菌杆周护岩师举曲春元超负砂封换太模贫减阳扬江析亩木言球朝医校古呢稻宋听唯输滑站另卫字鼓刚写刘微略范供阿块某功套友限项余倒卷创律雨让骨远帮初皮播优占死毒圈伟季训控激找叫云互跟裂粮粒母练塞钢顶策双留误础吸阻故寸盾晚丝女散焊功株亲院冷彻弹错散商视艺灭版烈零室轻血倍缺厘泵察绝富城冲喷壤简否柱李望盘磁雄似困巩益洲脱投送奴侧润盖挥距触星松送获兴独官混纪依未突架宽冬章湿偏纹吃执阀矿寨责熟稳夺硬价努翻奇甲预职评读背协损棉侵灰虽矛厚罗泥辟告卵箱掌氧恩爱停曾溶营终纲孟钱待尽俄缩沙退陈讨奋械载胞幼哪剥迫旋征槽倒握担仍呀鲜吧卡粗介钻逐弱脚怕盐末阴丰雾冠丙街莱贝辐肠付吉渗瑞惊顿挤秒悬姆烂森糖圣凹陶词迟蚕亿矩康遵牧遭幅园腔订香肉弟屋敏恢忘编印蜂急拿扩伤飞露核缘游振操央伍域甚迅辉异序免纸夜乡久隶缸夹念兰映沟乙吗儒杀汽磷艰晶插埃燃欢铁补咱芽永瓦倾阵碳演威附牙芽永瓦斜灌欧献顺猪洋腐请透司危括脉宜笑若尾束壮暴企菜穗楚汉愈绿拖牛份染既秋遍锻玉夏疗尖殖井费州访吹荣铜沿替滚客召旱悟刺脑措贯藏敢令隙炉壳硫煤迎铸粘探临薄旬善福纵择礼愿伏残雷延烟句纯渐耕跑泽慢栽鲁赤繁境潮横掉锥希池败船假亮谓托伙哲怀割摆贡呈劲财仪沉炼麻罪祖息车穿货销齐鼠抽画饲龙库守筑房歌寒喜哥洗蚀废纳腹乎录镜妇恶脂庄擦险赞钟摇典柄辩竹谷卖乱虚桥奥伯赶垂途额壁网截野遗静谋弄挂课镇妄盛耐援扎虑键归符庆聚绕摩忙舞遇索顾胶羊湖钉仁音迹碎伸灯避泛亡答勇频皇柳哈揭甘诺概宪浓岛袭谁洪谢炮浇斑讯懂灵蛋闭孩释乳巨徒私银伊景坦累匀霉杜乐勒隔弯绩招绍胡呼痛峰零柴簧午跳居尚丁秦稍追梁折耗碱殊岗挖氏刃剧堆赫荷胸衡勤膜篇登驻案刊秧缓凸役剪川雪链渔啦脸户洛孢勃盟买杨宗焦赛旗滤硅炭股坐蒸凝竟陷枪黎救冒暗洞犯筒您宋弧爆谬涂味津臂障褐陆啊健尊豆拔莫抵桑坡缝警挑污冰柬嘴啥饭塑寄赵喊垫丹渡耳刨虎笔稀昆浪萨茶滴浅拥穴覆伦娘吨浸袖珠雌妈紫戏塔锤震岁貌洁剖牢锋疑霸闪埔猛诉刷狠忽灾闹乔唐漏闻沈熔氯荒茎男凡抢像浆旁玻亦忠唱蒙予纷捕锁尤乘乌智淡允叛畜俘摸锈扫毕璃宝芯爷鉴秘净蒋钙肩腾枯抛轨堂拌爸循诱祝励肯酒绳穷塘燥泡袋朗喂铝软渠颗惯贸粪综墙趋彼届墨碍启逆卸航衣孙龄岭骗休借")
   266  
   267  	// html抽取文本要排除的标签
   268  	TextHtmlExcludeTags = []string{"head", "title", "img", "form", "textarea", "input", "select", "button", "iframe", "script", "style", "option"}
   269  
   270  	// 已编译的正则
   271  	RegFormatDir             = regexp.MustCompile(`[\/]{2,}`) //连续的"//"或"\\"或"\/"或"/\"
   272  	RegChineseAll            = regexp.MustCompile(PATTERN_CHINESE_ALL)
   273  	RegChineseName           = regexp.MustCompile(PATTERN_CHINESE_NAME)
   274  	RegWord                  = regexp.MustCompile(PATTERN_WORD)
   275  	RegMultiByte             = regexp.MustCompile(PATTERN_MULTIBYTE)
   276  	RegFullWidth             = regexp.MustCompile(PATTERN_FULLWIDTH)
   277  	RegHalfWidth             = regexp.MustCompile(PATTERN_HALFWIDTH)
   278  	RegFloat                 = regexp.MustCompile(PATTERN_FLOAT)
   279  	RegEmail                 = regexp.MustCompile(PATTERN_EMAIL)
   280  	RegMobilecn              = regexp.MustCompile(PATTERN_MOBILECN)
   281  	RegTelephone             = regexp.MustCompile(PATTERN_TELEPHONE)
   282  	RegPhone                 = regexp.MustCompile(PATTERN_PHONE)
   283  	RegDatetime              = regexp.MustCompile(PATTERN_DATETIME)
   284  	RegCreditno              = regexp.MustCompile(PATTERN_CREDIT_NO)
   285  	RegAlphaLower            = regexp.MustCompile(PATTERN_ALPHA_LOWER)
   286  	RegAlphaUpper            = regexp.MustCompile(PATTERN_ALPHA_UPPER)
   287  	RegAlphaNumeric          = regexp.MustCompile(PATTERN_ALPHA_NUMERIC)
   288  	RegHexcolor              = regexp.MustCompile(PATTERN_HEXCOLOR)
   289  	RegRgbcolor              = regexp.MustCompile(PATTERN_RGBCOLOR)
   290  	RegWhitespace            = regexp.MustCompile(`\s`)
   291  	RegWhitespaceAll         = regexp.MustCompile(PATTERN_WHITESPACE_ALL)
   292  	RegWhitespaceHas         = regexp.MustCompile(PATTERN_WHITESPACE_HAS)
   293  	RegWhitespaceDuplicate   = regexp.MustCompile(PATTERN_WHITESPACE_DUPLICATE)
   294  	RegBase64                = regexp.MustCompile(PATTERN_BASE64)
   295  	RegBase64Image           = regexp.MustCompile(PATTERN_BASE64_IMAGE)
   296  	RegHtmlTag               = regexp.MustCompile(PATTERN_HTML_TAGS)
   297  	RegDNSname               = regexp.MustCompile(PATTERN_DNSNAME)
   298  	RegUrlBackslashDuplicate = regexp.MustCompile(`([^:])[\/]{2,}`) //url中连续的"//"或"\\"或"\/"或"/\"
   299  	RegMd5                   = regexp.MustCompile(PATTERN_MD5)
   300  	RegSha1                  = regexp.MustCompile(PATTERN_SHA1)
   301  	RegSha256                = regexp.MustCompile(PATTERN_SHA256)
   302  	RegSha512                = regexp.MustCompile(PATTERN_SHA512)
   303  	RegEmoji                 = regexp.MustCompile(PATTERN_EMOJI)
   304  	RegUsernameen            = regexp.MustCompile(PATTERN_USERNAMEEN)
   305  	RegEquation              = regexp.MustCompile(PATTERN_EQUATION)
   306  )
   307  ```
   308  
   309  #### func  CallFunc
   310  
   311  ```go
   312  func CallFunc(f interface{}, args ...interface{}) (results []interface{}, err error)
   313  ```
   314  CallFunc 动态调用函数.
   315  
   316  #### func  GetFieldValue
   317  
   318  ```go
   319  func GetFieldValue(arr interface{}, fieldName string) (res interface{}, err error)
   320  ```
   321  GetFieldValue 获取(字典/结构体的)字段值;fieldName为字段名,大小写敏感.
   322  
   323  #### func  GetVariatePointerAddr
   324  
   325  ```go
   326  func GetVariatePointerAddr(val interface{}) int64
   327  ```
   328  GetVariatePointerAddr 获取变量的指针地址.
   329  
   330  #### func  GetVariateType
   331  
   332  ```go
   333  func GetVariateType(v interface{}) string
   334  ```
   335  GetVariateType 获取变量类型.
   336  
   337  #### func  VerifyFunc
   338  
   339  ```go
   340  func VerifyFunc(f interface{}, args ...interface{}) (vf reflect.Value, vargs []reflect.Value, err error)
   341  ```
   342  VerifyFunc 验证是否函数,并且参数个数、类型是否正确. 返回有效的函数、有效的参数.
   343  
   344  #### type BiosInfo
   345  
   346  ```go
   347  type BiosInfo struct {
   348  	Vendor  string `json:"vendor"`
   349  	Version string `json:"version"`
   350  	Date    string `json:"date"`
   351  }
   352  ```
   353  
   354  BiosInfo BIOS信息
   355  
   356  #### type BoardInfo
   357  
   358  ```go
   359  type BoardInfo struct {
   360  	Name     string `json:"name"`
   361  	Vendor   string `json:"vendor"`
   362  	Version  string `json:"version"`
   363  	Serial   string `json:"serial"`
   364  	AssetTag string `json:"assettag"`
   365  }
   366  ```
   367  
   368  BoardInfo Board信息
   369  
   370  #### type CallBack
   371  
   372  ```go
   373  type CallBack func()
   374  ```
   375  
   376  CallBack 回调执行函数,无参数且无返回值
   377  
   378  #### type CpuInfo
   379  
   380  ```go
   381  type CpuInfo struct {
   382  	Vendor  string `json:"vendor"`
   383  	Model   string `json:"model"`
   384  	Speed   string `json:"speed"`   // CPU clock rate in MHz
   385  	Cache   uint   `json:"cache"`   // CPU cache size in KB
   386  	Cpus    uint   `json:"cpus"`    // number of physical CPUs
   387  	Cores   uint   `json:"cores"`   // number of physical CPU cores
   388  	Threads uint   `json:"threads"` // number of logical (HT) CPU cores
   389  }
   390  ```
   391  
   392  CpuInfo CPU信息
   393  
   394  #### type FileFilter
   395  
   396  ```go
   397  type FileFilter func(string) bool
   398  ```
   399  
   400  FileFilter 文件过滤函数
   401  
   402  #### type LkkArrCompareType
   403  
   404  ```go
   405  type LkkArrCompareType uint8
   406  ```
   407  
   408  LkkArrCompareType 枚举类型,数组比较方式
   409  
   410  #### type LkkArray
   411  
   412  ```go
   413  type LkkArray struct {
   414  }
   415  ```
   416  
   417  LkkArray is the receiver of array utilities
   418  
   419  #### func (*LkkArray) ArrayChunk
   420  
   421  ```go
   422  func (ka *LkkArray) ArrayChunk(arr interface{}, size int) [][]interface{}
   423  ```
   424  ArrayChunk 将一个数组/切片分割成多个,size为每个子数组的长度.
   425  
   426  #### func (*LkkArray) ArrayColumn
   427  
   428  ```go
   429  func (ka *LkkArray) ArrayColumn(arr interface{}, columnKey string) []interface{}
   430  ```
   431  ArrayColumn 返回数组(切片/字典/结构体)中元素指定的一列. arr的元素必须是字典; columnKey为元素的字段名; 该方法效率较低.
   432  
   433  #### func (*LkkArray) ArrayDiff
   434  
   435  ```go
   436  func (ka *LkkArray) ArrayDiff(arr1, arr2 interface{}, compareType LkkArrCompareType) map[interface{}]interface{}
   437  ```
   438  ArrayDiff 计算数组(数组/切片/字典)的交集,返回在 arr1 中但不在 arr2 里的元素,注意会同时返回键.
   439  compareType为两个数组的比较方式,枚举类型,有: COMPARE_ONLY_VALUE 根据元素值比较, 返回在 arr1 中但是不在arr2
   440  里的值; COMPARE_ONLY_KEY 根据 arr1 中的键名和 arr2 进行比较,返回不同键名的项; COMPARE_BOTH_KEYVALUE
   441  同时比较键和值.
   442  
   443  #### func (*LkkArray) ArrayFlip
   444  
   445  ```go
   446  func (ka *LkkArray) ArrayFlip(arr interface{}) map[interface{}]interface{}
   447  ```
   448  ArrayFlip 交换数组(切片/字典)中的键和值.
   449  
   450  #### func (*LkkArray) ArrayIntersect
   451  
   452  ```go
   453  func (ka *LkkArray) ArrayIntersect(arr1, arr2 interface{}, compareType LkkArrCompareType) map[interface{}]interface{}
   454  ```
   455  ArrayIntersect 计算数组(数组/切片/字典)的交集,返回在 arr1 中且在 arr2 里的元素,注意会同时返回键.
   456  compareType为两个数组的比较方式,枚举类型,有: COMPARE_ONLY_VALUE 根据元素值比较, 返回在 arr1 中且在arr2 里的值;
   457  COMPARE_ONLY_KEY 根据 arr1 中的键名和 arr2 进行比较,返回相同键名的项; COMPARE_BOTH_KEYVALUE
   458  同时比较键和值.
   459  
   460  #### func (*LkkArray) ArrayKeyExists
   461  
   462  ```go
   463  func (ka *LkkArray) ArrayKeyExists(key interface{}, arr interface{}) bool
   464  ```
   465  ArrayKeyExists 检查arr(数组/切片/字典/结构体)里是否有key指定的键名(索引/字段).
   466  
   467  #### func (*LkkArray) ArrayKeys
   468  
   469  ```go
   470  func (ka *LkkArray) ArrayKeys(arr interface{}) []interface{}
   471  ```
   472  ArrayKeys 返回数组(切片/字典/结构体)中所有的键名;如果是结构体,只返回公开的字段.
   473  
   474  #### func (*LkkArray) ArrayPad
   475  
   476  ```go
   477  func (ka *LkkArray) ArrayPad(arr interface{}, size int, item interface{}) []interface{}
   478  ```
   479  ArrayPad 以指定长度将一个值item填充进arr数组/切片. 若 size 为正,则填补到数组的右侧,如果为负则从左侧开始填补; 若 size
   480  的绝对值小于或等于 arr 数组的长度则没有任何填补.
   481  
   482  #### func (*LkkArray) ArrayRand
   483  
   484  ```go
   485  func (ka *LkkArray) ArrayRand(arr interface{}, num int) []interface{}
   486  ```
   487  ArrayRand 从数组(切片/字典)中随机取出num个元素.
   488  
   489  #### func (*LkkArray) ArrayReverse
   490  
   491  ```go
   492  func (ka *LkkArray) ArrayReverse(arr interface{}) []interface{}
   493  ```
   494  ArrayReverse 返回单元顺序相反的数组(仅限数组和切片).
   495  
   496  #### func (*LkkArray) ArraySearchItem
   497  
   498  ```go
   499  func (ka *LkkArray) ArraySearchItem(arr interface{}, condition map[string]interface{}) (res interface{})
   500  ```
   501  ArraySearchItem 从数组(切片/字典)中搜索对应元素(单个). arr为要查找的数组,元素必须为字典/结构体;condition为条件字典.
   502  
   503  #### func (*LkkArray) ArraySearchMutil
   504  
   505  ```go
   506  func (ka *LkkArray) ArraySearchMutil(arr interface{}, condition map[string]interface{}) (res []interface{})
   507  ```
   508  ArraySearchMutil 从数组(切片/字典)中搜索对应元素(多个). arr为要查找的数组,元素必须为字典/结构体;condition为条件字典.
   509  
   510  #### func (*LkkArray) ArrayShuffle
   511  
   512  ```go
   513  func (ka *LkkArray) ArrayShuffle(arr interface{}) []interface{}
   514  ```
   515  ArrayShuffle 打乱数组/切片排序.
   516  
   517  #### func (*LkkArray) ArrayUnique
   518  
   519  ```go
   520  func (ka *LkkArray) ArrayUnique(arr interface{}) map[interface{}]interface{}
   521  ```
   522  ArrayUnique 移除数组(切片/字典)中重复的值,返回字典,保留键名.
   523  
   524  #### func (*LkkArray) ArrayValues
   525  
   526  ```go
   527  func (ka *LkkArray) ArrayValues(arr interface{}, filterZero bool) []interface{}
   528  ```
   529  ArrayValues 返回arr(数组/切片/字典/结构体)中所有的值;如果是结构体,只返回公开字段的值. filterZero
   530  是否过滤零值元素(nil,false,0,"",[]),true时排除零值元素,false时保留零值元素.
   531  
   532  #### func (*LkkArray) CutSlice
   533  
   534  ```go
   535  func (ka *LkkArray) CutSlice(arr interface{}, offset, size int) []interface{}
   536  ```
   537  CutSlice 裁剪切片,返回根据offset(起始位置)和size(数量)参数所指定的arr(数组/切片)中的一段切片.
   538  
   539  #### func (*LkkArray) DeleteSliceItems
   540  
   541  ```go
   542  func (ka *LkkArray) DeleteSliceItems(val interface{}, ids ...int) (res []interface{}, del int)
   543  ```
   544  DeleteSliceItems 删除数组/切片的元素,返回一个新切片. ids为多个元素的索引(0~len(val)-1); del为删除元素的数量.
   545  
   546  #### func (*LkkArray) Implode
   547  
   548  ```go
   549  func (ka *LkkArray) Implode(delimiter string, arr interface{}) string
   550  ```
   551  Implode 用delimiter将数组(数组/切片/字典/结构体)的值连接为一个字符串.
   552  
   553  #### func (*LkkArray) InArray
   554  
   555  ```go
   556  func (ka *LkkArray) InArray(needle interface{}, haystack interface{}) bool
   557  ```
   558  InArray 元素needle是否在数组haystack(切片/字典)内.
   559  
   560  #### func (*LkkArray) InInt64Slice
   561  
   562  ```go
   563  func (ka *LkkArray) InInt64Slice(i int64, list []int64) bool
   564  ```
   565  InInt64Slice 是否在64位整型切片内.
   566  
   567  #### func (*LkkArray) InIntSlice
   568  
   569  ```go
   570  func (ka *LkkArray) InIntSlice(i int, list []int) bool
   571  ```
   572  InIntSlice 是否在整型切片内.
   573  
   574  #### func (*LkkArray) InStringSlice
   575  
   576  ```go
   577  func (ka *LkkArray) InStringSlice(str string, list []string) bool
   578  ```
   579  InStringSlice 是否在字符串切片内.
   580  
   581  #### func (*LkkArray) IsArray
   582  
   583  ```go
   584  func (ka *LkkArray) IsArray(val interface{}) bool
   585  ```
   586  IsArray 变量是否数组.
   587  
   588  #### func (*LkkArray) IsArrayOrSlice
   589  
   590  ```go
   591  func (ka *LkkArray) IsArrayOrSlice(val interface{}) bool
   592  ```
   593  IsArrayOrSlice 变量是否数组或切片.
   594  
   595  #### func (*LkkArray) IsEqualArray
   596  
   597  ```go
   598  func (ka *LkkArray) IsEqualArray(arr1, arr2 interface{}) bool
   599  ```
   600  IsEqualArray 两个数组/切片是否相同(不管元素顺序),且不会检查元素类型; arr1, arr2 是要比较的数组/切片.
   601  
   602  #### func (*LkkArray) IsEqualMap
   603  
   604  ```go
   605  func (ka *LkkArray) IsEqualMap(arr1, arr2 interface{}) bool
   606  ```
   607  IsEqualMap 两个字典是否相同(不管键顺序),且不会严格检查元素类型; arr1, arr2 是要比较的字典.
   608  
   609  #### func (*LkkArray) IsMap
   610  
   611  ```go
   612  func (ka *LkkArray) IsMap(val interface{}) bool
   613  ```
   614  IsMap 变量是否字典.
   615  
   616  #### func (*LkkArray) IsSlice
   617  
   618  ```go
   619  func (ka *LkkArray) IsSlice(val interface{}) bool
   620  ```
   621  IsSlice 变量是否切片.
   622  
   623  #### func (*LkkArray) IsStruct
   624  
   625  ```go
   626  func (ka *LkkArray) IsStruct(val interface{}) bool
   627  ```
   628  IsStruct 变量是否结构体.
   629  
   630  #### func (*LkkArray) JoinInts
   631  
   632  ```go
   633  func (ka *LkkArray) JoinInts(delimiter string, ints []int) (res string)
   634  ```
   635  JoinInts 使用分隔符delimiter连接整数切片.
   636  
   637  #### func (*LkkArray) JoinStrings
   638  
   639  ```go
   640  func (ka *LkkArray) JoinStrings(delimiter string, strs []string) (res string)
   641  ```
   642  JoinStrings 使用分隔符delimiter连接字符串切片strs.效率比Implode高.
   643  
   644  #### func (*LkkArray) Length
   645  
   646  ```go
   647  func (ka *LkkArray) Length(val interface{}) int
   648  ```
   649  Length 获取数组/切片的长度;结果为-1表示变量不是数组或切片.
   650  
   651  #### func (*LkkArray) MergeMap
   652  
   653  ```go
   654  func (ka *LkkArray) MergeMap(ss ...interface{}) map[interface{}]interface{}
   655  ```
   656  MergeMap 合并字典,相同的键名时,后面的值将覆盖前一个值. ss是元素为字典的切片.
   657  
   658  #### func (*LkkArray) MergeSlice
   659  
   660  ```go
   661  func (ka *LkkArray) MergeSlice(filterZero bool, ss ...interface{}) []interface{}
   662  ```
   663  MergeSlice 合并一个或多个数组/切片. filterZero
   664  是否过滤零值元素(nil,false,0,'',[]),true时排除零值元素,false时保留零值元素. ss是元素为数组/切片的切片.
   665  
   666  #### func (*LkkArray) NewStrMapItf
   667  
   668  ```go
   669  func (ka *LkkArray) NewStrMapItf() map[string]interface{}
   670  ```
   671  NewStrMapItf 新建[字符-接口]字典.
   672  
   673  #### func (*LkkArray) NewStrMapStr
   674  
   675  ```go
   676  func (ka *LkkArray) NewStrMapStr() map[string]string
   677  ```
   678  NewStrMapStr 新建[字符-字符]字典.
   679  
   680  #### func (*LkkArray) SliceFill
   681  
   682  ```go
   683  func (ka *LkkArray) SliceFill(val interface{}, num int) []interface{}
   684  ```
   685  SliceFill 用给定的值val填充切片,num为插入元素的数量.
   686  
   687  #### func (*LkkArray) SlicePop
   688  
   689  ```go
   690  func (ka *LkkArray) SlicePop(s *[]interface{}) interface{}
   691  ```
   692  SlicePop 弹出切片最后一个元素(出栈),并返回该元素.
   693  
   694  #### func (*LkkArray) SlicePush
   695  
   696  ```go
   697  func (ka *LkkArray) SlicePush(s *[]interface{}, elements ...interface{}) int
   698  ```
   699  SlicePush 将一个或多个元素压入切片的末尾(入栈),返回处理之后切片的元素个数.
   700  
   701  #### func (*LkkArray) SliceShift
   702  
   703  ```go
   704  func (ka *LkkArray) SliceShift(s *[]interface{}) interface{}
   705  ```
   706  SliceShift 将切片开头的元素移出,并返回该元素.
   707  
   708  #### func (*LkkArray) SliceUnshift
   709  
   710  ```go
   711  func (ka *LkkArray) SliceUnshift(s *[]interface{}, elements ...interface{}) int
   712  ```
   713  SliceUnshift 在切片开头插入一个或多个元素,返回处理之后切片的元素个数.
   714  
   715  #### func (*LkkArray) Unique64Ints
   716  
   717  ```go
   718  func (ka *LkkArray) Unique64Ints(ints []int64) (res []int64)
   719  ```
   720  Unique64Ints 移除64位整数切片中的重复值.
   721  
   722  #### func (*LkkArray) UniqueInts
   723  
   724  ```go
   725  func (ka *LkkArray) UniqueInts(ints []int) (res []int)
   726  ```
   727  UniqueInts 移除整数切片中的重复值.
   728  
   729  #### func (*LkkArray) UniqueStrings
   730  
   731  ```go
   732  func (ka *LkkArray) UniqueStrings(strs []string) (res []string)
   733  ```
   734  UniqueStrings 移除字符串切片中的重复值.
   735  
   736  #### type LkkCaseSwitch
   737  
   738  ```go
   739  type LkkCaseSwitch uint8
   740  ```
   741  
   742  LkkCaseSwitch 枚举类型,大小写开关
   743  
   744  #### type LkkConvert
   745  
   746  ```go
   747  type LkkConvert struct {
   748  }
   749  ```
   750  
   751  LkkConvert is the receiver of convert utilities
   752  
   753  #### func (*LkkConvert) BaseConvert
   754  
   755  ```go
   756  func (kc *LkkConvert) BaseConvert(num string, frombase, tobase int) (string, error)
   757  ```
   758  BaseConvert 进制转换,在任意进制之间转换数字. num为输入数值,frombase为原进制,tobase为结果进制.
   759  
   760  #### func (*LkkConvert) Bin2Dec
   761  
   762  ```go
   763  func (kc *LkkConvert) Bin2Dec(str string) (int64, error)
   764  ```
   765  Bin2Dec 将二进制字符串转换为十进制.
   766  
   767  #### func (*LkkConvert) Bin2Hex
   768  
   769  ```go
   770  func (kc *LkkConvert) Bin2Hex(str string) (string, error)
   771  ```
   772  Bin2Hex 将二进制字符串转换为十六进制字符串.
   773  
   774  #### func (*LkkConvert) Bool2Int
   775  
   776  ```go
   777  func (kc *LkkConvert) Bool2Int(val bool) int
   778  ```
   779  Bool2Int 将布尔值转换为整型.
   780  
   781  #### func (*LkkConvert) Bool2Str
   782  
   783  ```go
   784  func (kc *LkkConvert) Bool2Str(val bool) string
   785  ```
   786  Bool2Str 将布尔值转换为字符串.
   787  
   788  #### func (*LkkConvert) Byte2Float64
   789  
   790  ```go
   791  func (kc *LkkConvert) Byte2Float64(bytes []byte) float64
   792  ```
   793  Byte2Float64 字节切片转64位浮点数.
   794  
   795  #### func (*LkkConvert) Byte2Hex
   796  
   797  ```go
   798  func (kc *LkkConvert) Byte2Hex(val []byte) string
   799  ```
   800  Byte2Hex 字节切片转16进制字符串.
   801  
   802  #### func (*LkkConvert) Byte2Hexs
   803  
   804  ```go
   805  func (kc *LkkConvert) Byte2Hexs(val []byte) []byte
   806  ```
   807  Byte2Hexs 字节切片转16进制切片.
   808  
   809  #### func (*LkkConvert) Byte2Int64
   810  
   811  ```go
   812  func (kc *LkkConvert) Byte2Int64(val []byte) int64
   813  ```
   814  Byte2Int64 字节切片转64位整型.
   815  
   816  #### func (*LkkConvert) Bytes2Str
   817  
   818  ```go
   819  func (kc *LkkConvert) Bytes2Str(val []byte) string
   820  ```
   821  Bytes2Str 将字节切片转换为字符串.
   822  
   823  #### func (*LkkConvert) Bytes2StrUnsafe
   824  
   825  ```go
   826  func (kc *LkkConvert) Bytes2StrUnsafe(val []byte) string
   827  ```
   828  Bytes2StrUnsafe (非安全的)将字节切片转换为字符串.
   829  零拷贝,不安全.效率是string([]byte{})的百倍以上,且转换量越大效率优势越明显.
   830  
   831  #### func (*LkkConvert) Dec2Bin
   832  
   833  ```go
   834  func (kc *LkkConvert) Dec2Bin(num int64) string
   835  ```
   836  Dec2Bin 将十进制转换为二进制字符串.
   837  
   838  #### func (*LkkConvert) Dec2Hex
   839  
   840  ```go
   841  func (kc *LkkConvert) Dec2Hex(num int64) string
   842  ```
   843  Dec2Hex 将十进制转换为十六进制.
   844  
   845  #### func (*LkkConvert) Dec2Oct
   846  
   847  ```go
   848  func (kc *LkkConvert) Dec2Oct(num int64) string
   849  ```
   850  Dec2Oct 将十进制转换为八进制.
   851  
   852  #### func (*LkkConvert) Float2Str
   853  
   854  ```go
   855  func (kc *LkkConvert) Float2Str(val interface{}, decimal int) string
   856  ```
   857  Float2Str 将浮点数转换为字符串,decimal为小数位数.
   858  
   859  #### func (*LkkConvert) Float64ToByte
   860  
   861  ```go
   862  func (kc *LkkConvert) Float64ToByte(val float64) []byte
   863  ```
   864  Float64ToByte 64位浮点数转字节切片.
   865  
   866  #### func (*LkkConvert) Hex2Bin
   867  
   868  ```go
   869  func (kc *LkkConvert) Hex2Bin(str string) (string, error)
   870  ```
   871  Hex2Bin 将十六进制字符串转换为二进制字符串.
   872  
   873  #### func (*LkkConvert) Hex2Byte
   874  
   875  ```go
   876  func (kc *LkkConvert) Hex2Byte(str string) []byte
   877  ```
   878  Hex2Byte 16进制字符串转字节切片.
   879  
   880  #### func (*LkkConvert) Hex2Dec
   881  
   882  ```go
   883  func (kc *LkkConvert) Hex2Dec(str string) (int64, error)
   884  ```
   885  Hex2Dec 将十六进制转换为十进制.
   886  
   887  #### func (*LkkConvert) Hexs2Byte
   888  
   889  ```go
   890  func (kc *LkkConvert) Hexs2Byte(val []byte) []byte
   891  ```
   892  Hexs2Byte 16进制切片转byte切片.
   893  
   894  #### func (*LkkConvert) Int2Str
   895  
   896  ```go
   897  func (kc *LkkConvert) Int2Str(val interface{}) string
   898  ```
   899  Int2Str 将整数转换为字符串.
   900  
   901  #### func (*LkkConvert) Int64ToByte
   902  
   903  ```go
   904  func (kc *LkkConvert) Int64ToByte(val int64) []byte
   905  ```
   906  Int64ToByte 64位整型转字节切片.
   907  
   908  #### func (*LkkConvert) Ip2Long
   909  
   910  ```go
   911  func (kc *LkkConvert) Ip2Long(ipAddress string) uint32
   912  ```
   913  Ip2Long 将 IPV4 的字符串互联网协议转换成长整型数字.
   914  
   915  #### func (*LkkConvert) IsBinary
   916  
   917  ```go
   918  func (kc *LkkConvert) IsBinary(s string) bool
   919  ```
   920  IsBinary 字符串是否二进制.
   921  
   922  #### func (*LkkConvert) IsBool
   923  
   924  ```go
   925  func (kc *LkkConvert) IsBool(val interface{}) bool
   926  ```
   927  IsBool 是否布尔值.
   928  
   929  #### func (*LkkConvert) IsByte
   930  
   931  ```go
   932  func (kc *LkkConvert) IsByte(val interface{}) bool
   933  ```
   934  IsByte 变量是否字节切片.
   935  
   936  #### func (*LkkConvert) IsEmpty
   937  
   938  ```go
   939  func (kc *LkkConvert) IsEmpty(val interface{}) bool
   940  ```
   941  IsEmpty 变量是否为空.
   942  
   943  #### func (*LkkConvert) IsFloat
   944  
   945  ```go
   946  func (kc *LkkConvert) IsFloat(val interface{}) bool
   947  ```
   948  IsFloat 变量是否浮点数值.
   949  
   950  #### func (*LkkConvert) IsHex
   951  
   952  ```go
   953  func (kc *LkkConvert) IsHex(str string) bool
   954  ```
   955  IsHex 是否十六进制字符串.
   956  
   957  #### func (*LkkConvert) IsInt
   958  
   959  ```go
   960  func (kc *LkkConvert) IsInt(val interface{}) bool
   961  ```
   962  IsInt 变量是否整型数值.
   963  
   964  #### func (*LkkConvert) IsInterface
   965  
   966  ```go
   967  func (kc *LkkConvert) IsInterface(val interface{}) bool
   968  ```
   969  IsInterface 变量是否接口.
   970  
   971  #### func (*LkkConvert) IsNil
   972  
   973  ```go
   974  func (kc *LkkConvert) IsNil(val interface{}) bool
   975  ```
   976  IsNil 变量是否nil.
   977  
   978  #### func (*LkkConvert) IsNumeric
   979  
   980  ```go
   981  func (kc *LkkConvert) IsNumeric(val interface{}) bool
   982  ```
   983  IsNumeric 变量是否数值(不包含复数和科学计数法).
   984  
   985  #### func (*LkkConvert) IsPort
   986  
   987  ```go
   988  func (kc *LkkConvert) IsPort(val interface{}) bool
   989  ```
   990  IsPort 变量值是否端口号(1~65535).
   991  
   992  #### func (*LkkConvert) IsString
   993  
   994  ```go
   995  func (kc *LkkConvert) IsString(val interface{}) bool
   996  ```
   997  IsString 变量是否字符串.
   998  
   999  #### func (*LkkConvert) IsStruct
  1000  
  1001  ```go
  1002  func (kc *LkkConvert) IsStruct(val interface{}) bool
  1003  ```
  1004  IsStruct 变量是否结构体.
  1005  
  1006  #### func (*LkkConvert) Long2Ip
  1007  
  1008  ```go
  1009  func (kc *LkkConvert) Long2Ip(properAddress uint32) string
  1010  ```
  1011  Long2Ip 将长整型转化为字符串形式带点的互联网标准格式地址(IPV4).
  1012  
  1013  #### func (*LkkConvert) Oct2Dec
  1014  
  1015  ```go
  1016  func (kc *LkkConvert) Oct2Dec(str string) (int64, error)
  1017  ```
  1018  Oct2Dec 将八进制转换为十进制.
  1019  
  1020  #### func (*LkkConvert) Runes2Bytes
  1021  
  1022  ```go
  1023  func (kc *LkkConvert) Runes2Bytes(rs []rune) []byte
  1024  ```
  1025  Runes2Bytes 将[]rune转为[]byte.
  1026  
  1027  #### func (*LkkConvert) Str2Bool
  1028  
  1029  ```go
  1030  func (kc *LkkConvert) Str2Bool(val string) bool
  1031  ```
  1032  Str2Bool 将字符串转换为布尔值. 1, t, T, TRUE, true, True 等字符串为真; 0, f, F, FALSE, false,
  1033  False 等字符串为假.
  1034  
  1035  #### func (*LkkConvert) Str2Bytes
  1036  
  1037  ```go
  1038  func (kc *LkkConvert) Str2Bytes(val string) []byte
  1039  ```
  1040  Str2Bytes 将字符串转换为字节切片.
  1041  
  1042  #### func (*LkkConvert) Str2BytesUnsafe
  1043  
  1044  ```go
  1045  func (kc *LkkConvert) Str2BytesUnsafe(val string) []byte
  1046  ```
  1047  Str2BytesUnsafe (非安全的)将字符串转换为字节切片. 该方法零拷贝,但不安全.它直接转换底层指针,两者指向的相同的内存,改一个另外一个也会变.
  1048  仅当临时需将长字符串转换且不长时间保存时可以使用. 转换之后若没做其他操作直接改变里面的字符,则程序会崩溃. 如
  1049  b:=Str2BytesUnsafe("xxx"); b[1]='d'; 程序将panic.
  1050  
  1051  #### func (*LkkConvert) Str2Float32
  1052  
  1053  ```go
  1054  func (kc *LkkConvert) Str2Float32(val string) float32
  1055  ```
  1056  Str2Float32 将字符串转换为float32;其中"true", "TRUE", "True"为1.0 .
  1057  
  1058  #### func (*LkkConvert) Str2Float64
  1059  
  1060  ```go
  1061  func (kc *LkkConvert) Str2Float64(val string) float64
  1062  ```
  1063  Str2Float64 将字符串转换为float64;其中"true", "TRUE", "True"为1.0 .
  1064  
  1065  #### func (*LkkConvert) Str2Int
  1066  
  1067  ```go
  1068  func (kc *LkkConvert) Str2Int(val string) int
  1069  ```
  1070  Str2Int 将字符串转换为int.其中"true", "TRUE", "True"为1;若为浮点字符串,则取整数部分.
  1071  
  1072  #### func (*LkkConvert) Str2Int16
  1073  
  1074  ```go
  1075  func (kc *LkkConvert) Str2Int16(val string) int16
  1076  ```
  1077  Str2Int16 将字符串转换为int16.
  1078  
  1079  #### func (*LkkConvert) Str2Int32
  1080  
  1081  ```go
  1082  func (kc *LkkConvert) Str2Int32(val string) int32
  1083  ```
  1084  Str2Int32 将字符串转换为int32.
  1085  
  1086  #### func (*LkkConvert) Str2Int64
  1087  
  1088  ```go
  1089  func (kc *LkkConvert) Str2Int64(val string) int64
  1090  ```
  1091  Str2Int64 将字符串转换为int64.
  1092  
  1093  #### func (*LkkConvert) Str2Int8
  1094  
  1095  ```go
  1096  func (kc *LkkConvert) Str2Int8(val string) int8
  1097  ```
  1098  Str2Int8 将字符串转换为int8.
  1099  
  1100  #### func (*LkkConvert) Str2Uint
  1101  
  1102  ```go
  1103  func (kc *LkkConvert) Str2Uint(val string) uint
  1104  ```
  1105  Str2Uint 将字符串转换为uint.其中"true", "TRUE", "True"为1;若为浮点字符串,则取整数部分;若为负值则取0.
  1106  
  1107  #### func (*LkkConvert) Str2Uint16
  1108  
  1109  ```go
  1110  func (kc *LkkConvert) Str2Uint16(val string) uint16
  1111  ```
  1112  Str2Uint16 将字符串转换为uint16.
  1113  
  1114  #### func (*LkkConvert) Str2Uint32
  1115  
  1116  ```go
  1117  func (kc *LkkConvert) Str2Uint32(val string) uint32
  1118  ```
  1119  Str2Uint32 将字符串转换为uint32.
  1120  
  1121  #### func (*LkkConvert) Str2Uint64
  1122  
  1123  ```go
  1124  func (kc *LkkConvert) Str2Uint64(val string) uint64
  1125  ```
  1126  Str2Uint64 将字符串转换为uint64.
  1127  
  1128  #### func (*LkkConvert) Str2Uint8
  1129  
  1130  ```go
  1131  func (kc *LkkConvert) Str2Uint8(val string) uint8
  1132  ```
  1133  Str2Uint8 将字符串转换为uint8.
  1134  
  1135  #### func (*LkkConvert) Struct2Map
  1136  
  1137  ```go
  1138  func (kc *LkkConvert) Struct2Map(obj interface{}, tagName string) (map[string]interface{}, error)
  1139  ```
  1140  Struct2Map 结构体转为字典;tagName为要导出的标签名,可以为空,为空时将导出所有字段.
  1141  
  1142  #### func (*LkkConvert) ToBool
  1143  
  1144  ```go
  1145  func (kc *LkkConvert) ToBool(val interface{}) bool
  1146  ```
  1147  ToBool 强制将变量转换为布尔值. 数值类型将检查值是否>0; 字符串将使用Str2Bool; 数组、切片、字典、通道类型将检查它们的长度是否>0;
  1148  指针、结构体类型为true,其他为false.
  1149  
  1150  #### func (*LkkConvert) ToFloat
  1151  
  1152  ```go
  1153  func (kc *LkkConvert) ToFloat(val interface{}) (res float64)
  1154  ```
  1155  ToFloat 强制将变量转换为浮点型. 数值类型将转为浮点型; 字符串将使用Str2Float64; 布尔型的true为1.0,false为0;
  1156  数组、切片、字典、通道类型将取它们的长度; 指针、结构体类型为1.0,其他为0.
  1157  
  1158  #### func (*LkkConvert) ToInt
  1159  
  1160  ```go
  1161  func (kc *LkkConvert) ToInt(val interface{}) int
  1162  ```
  1163  ToInt 强制将变量转换为整型. 数值类型将转为整型; 字符串类型将使用Str2Int; 布尔型的true为1,false为0;
  1164  数组、切片、字典、通道类型将取它们的长度; 指针、结构体类型为1,其他为0.
  1165  
  1166  #### func (*LkkConvert) ToStr
  1167  
  1168  ```go
  1169  func (kc *LkkConvert) ToStr(val interface{}) string
  1170  ```
  1171  ToStr 强制将变量转换为字符串.
  1172  
  1173  #### type LkkDebug
  1174  
  1175  ```go
  1176  type LkkDebug struct {
  1177  }
  1178  ```
  1179  
  1180  LkkDebug is the receiver of debug utilities
  1181  
  1182  #### func (*LkkDebug) CallMethod
  1183  
  1184  ```go
  1185  func (kd *LkkDebug) CallMethod(t interface{}, method string, args ...interface{}) ([]interface{}, error)
  1186  ```
  1187  CallMethod 调用对象的方法. 若执行成功,则结果是该方法的返回结果; 否则返回(nil, error).
  1188  
  1189  #### func (*LkkDebug) DumpPrint
  1190  
  1191  ```go
  1192  func (ks *LkkDebug) DumpPrint(vs ...interface{})
  1193  ```
  1194  DumpPrint 打印调试变量.
  1195  
  1196  #### func (*LkkDebug) DumpStacks
  1197  
  1198  ```go
  1199  func (kd *LkkDebug) DumpStacks()
  1200  ```
  1201  DumpStacks 打印堆栈信息.
  1202  
  1203  #### func (*LkkDebug) GetCallDir
  1204  
  1205  ```go
  1206  func (kd *LkkDebug) GetCallDir() string
  1207  ```
  1208  GetCallDir 获取调用方法的文件目录.
  1209  
  1210  #### func (*LkkDebug) GetCallFile
  1211  
  1212  ```go
  1213  func (kd *LkkDebug) GetCallFile() string
  1214  ```
  1215  GetCallFile 获取调用方法的文件路径.
  1216  
  1217  #### func (*LkkDebug) GetCallLine
  1218  
  1219  ```go
  1220  func (kd *LkkDebug) GetCallLine() int
  1221  ```
  1222  GetCallLine 获取调用方法的行号.
  1223  
  1224  #### func (*LkkDebug) GetCallName
  1225  
  1226  ```go
  1227  func (kd *LkkDebug) GetCallName(f interface{}, onlyFun bool) string
  1228  ```
  1229  GetCallName 获取调用的方法名称;f为目标方法;onlyFun为true时仅返回方法,不包括包名.
  1230  
  1231  #### func (*LkkDebug) GetCallPackage
  1232  
  1233  ```go
  1234  func (kd *LkkDebug) GetCallPackage(callFile ...string) string
  1235  ```
  1236  GetCallPackage 获取调用方法或调用文件的包名.callFile为调用文件路径.
  1237  
  1238  #### func (*LkkDebug) GetFuncNames
  1239  
  1240  ```go
  1241  func (kd *LkkDebug) GetFuncNames(obj interface{}) (res []string)
  1242  ```
  1243  GetFuncNames 获取变量的所有(公开的)函数名.
  1244  
  1245  #### func (*LkkDebug) GetMethod
  1246  
  1247  ```go
  1248  func (kd *LkkDebug) GetMethod(t interface{}, method string) interface{}
  1249  ```
  1250  GetMethod 获取对象t中的method方法. 注意:返回的方法中的第一个参数是接收者. 所以,调用返回的方法时,必须将接收者作为第一个参数传递.
  1251  
  1252  #### func (*LkkDebug) HasMethod
  1253  
  1254  ```go
  1255  func (kd *LkkDebug) HasMethod(t interface{}, method string) bool
  1256  ```
  1257  HasMethod 检查对象t是否具有method方法.
  1258  
  1259  #### type LkkEncrypt
  1260  
  1261  ```go
  1262  type LkkEncrypt struct {
  1263  }
  1264  ```
  1265  
  1266  LkkEncrypt is the receiver of encrypt utilities
  1267  
  1268  #### func (*LkkEncrypt) AesCBCDecrypt
  1269  
  1270  ```go
  1271  func (ke *LkkEncrypt) AesCBCDecrypt(cipherText, key []byte, paddingType ...LkkPKCSType) ([]byte, error)
  1272  ```
  1273  AesCBCDecrypt AES-CBC密码分组链接(Cipher-block chaining)模式解密.
  1274  cipherText为密文;key为密钥,长16/24/32;paddingType为填充方式,枚举(PKCS_NONE,PKCS_ZERO,PKCS_SEVEN),默认PKCS_SEVEN.
  1275  
  1276  #### func (*LkkEncrypt) AesCBCEncrypt
  1277  
  1278  ```go
  1279  func (ke *LkkEncrypt) AesCBCEncrypt(clearText, key []byte, paddingType ...LkkPKCSType) ([]byte, error)
  1280  ```
  1281  AesCBCEncrypt AES-CBC密码分组链接(Cipher-block chaining)模式加密.加密无法并行,不适合对流数据加密.
  1282  clearText为明文;key为密钥,长16/24/32;paddingType为填充方式,枚举(PKCS_ZERO,PKCS_SEVEN),默认PKCS_SEVEN.
  1283  
  1284  #### func (*LkkEncrypt) AesCFBDecrypt
  1285  
  1286  ```go
  1287  func (ke *LkkEncrypt) AesCFBDecrypt(cipherText, key []byte) ([]byte, error)
  1288  ```
  1289  AesCFBDecrypt AES-CFB密文反馈(Cipher feedback)模式解密. cipherText为密文;key为密钥,长16/24/32.
  1290  
  1291  #### func (*LkkEncrypt) AesCFBEncrypt
  1292  
  1293  ```go
  1294  func (ke *LkkEncrypt) AesCFBEncrypt(clearText, key []byte) ([]byte, error)
  1295  ```
  1296  AesCFBEncrypt AES-CFB密文反馈(Cipher feedback)模式加密.适合对流数据加密.
  1297  clearText为明文;key为密钥,长16/24/32.
  1298  
  1299  #### func (*LkkEncrypt) AesCTRDecrypt
  1300  
  1301  ```go
  1302  func (ke *LkkEncrypt) AesCTRDecrypt(cipherText, key []byte) ([]byte, error)
  1303  ```
  1304  AesCTRDecrypt AES-CTR计算器(Counter)模式解密. cipherText为密文;key为密钥,长16/24/32.
  1305  
  1306  #### func (*LkkEncrypt) AesCTREncrypt
  1307  
  1308  ```go
  1309  func (ke *LkkEncrypt) AesCTREncrypt(clearText, key []byte) ([]byte, error)
  1310  ```
  1311  AesCTREncrypt AES-CTR计算器(Counter)模式加密. clearText为明文;key为密钥,长16/24/32.
  1312  
  1313  #### func (*LkkEncrypt) AesOFBDecrypt
  1314  
  1315  ```go
  1316  func (ke *LkkEncrypt) AesOFBDecrypt(cipherText, key []byte) ([]byte, error)
  1317  ```
  1318  AesOFBDecrypt AES-OFB输出反馈(Output feedback)模式解密. cipherText为密文;key为密钥,长16/24/32.
  1319  
  1320  #### func (*LkkEncrypt) AesOFBEncrypt
  1321  
  1322  ```go
  1323  func (ke *LkkEncrypt) AesOFBEncrypt(clearText, key []byte) ([]byte, error)
  1324  ```
  1325  AesOFBEncrypt AES-OFB输出反馈(Output feedback)模式加密.适合对流数据加密.
  1326  clearText为明文;key为密钥,长16/24/32.
  1327  
  1328  #### func (*LkkEncrypt) AuthCode
  1329  
  1330  ```go
  1331  func (ke *LkkEncrypt) AuthCode(str, key []byte, encode bool, expiry int64) ([]byte, int64)
  1332  ```
  1333  AuthCode 授权码编码或解码;encode为true时编码,为false解码;expiry为有效期,秒;返回结果为加密/解密的字符串和有效期时间戳.
  1334  
  1335  #### func (*LkkEncrypt) Base64Decode
  1336  
  1337  ```go
  1338  func (ke *LkkEncrypt) Base64Decode(str []byte) ([]byte, error)
  1339  ```
  1340  Base64Decode 对使用 MIME base64 编码的数据进行解码.
  1341  
  1342  #### func (*LkkEncrypt) Base64Encode
  1343  
  1344  ```go
  1345  func (ke *LkkEncrypt) Base64Encode(str []byte) []byte
  1346  ```
  1347  Base64Encode 使用 MIME base64 对数据进行编码.
  1348  
  1349  #### func (*LkkEncrypt) Base64UrlDecode
  1350  
  1351  ```go
  1352  func (ke *LkkEncrypt) Base64UrlDecode(str []byte) ([]byte, error)
  1353  ```
  1354  Base64UrlDecode url安全的Base64Decode.
  1355  
  1356  #### func (*LkkEncrypt) Base64UrlEncode
  1357  
  1358  ```go
  1359  func (ke *LkkEncrypt) Base64UrlEncode(str []byte) []byte
  1360  ```
  1361  Base64UrlSafeEncode url安全的Base64Encode,没有'/'和'+'及结尾的'=' .
  1362  
  1363  #### func (*LkkEncrypt) EasyDecrypt
  1364  
  1365  ```go
  1366  func (ke *LkkEncrypt) EasyDecrypt(val, key []byte) []byte
  1367  ```
  1368  EasyDecrypt 简单解密. val为待解密的字符串,key为密钥.
  1369  
  1370  #### func (*LkkEncrypt) EasyEncrypt
  1371  
  1372  ```go
  1373  func (ke *LkkEncrypt) EasyEncrypt(data, key []byte) []byte
  1374  ```
  1375  EasyEncrypt 简单加密. data为要加密的原字符串,key为密钥.
  1376  
  1377  #### func (*LkkEncrypt) GenerateRsaKeys
  1378  
  1379  ```go
  1380  func (ke *LkkEncrypt) GenerateRsaKeys(bits int) (private []byte, public []byte, err error)
  1381  ```
  1382  GenerateRsaKeys 生成RSA密钥对.bits为密钥位数,通常为1024或2048.
  1383  
  1384  #### func (*LkkEncrypt) HmacShaX
  1385  
  1386  ```go
  1387  func (ke *LkkEncrypt) HmacShaX(data, secret []byte, x uint16) []byte
  1388  ```
  1389  HmacShaX HmacSHA-x加密,x为1/256/512 .
  1390  
  1391  #### func (*LkkEncrypt) PasswordHash
  1392  
  1393  ```go
  1394  func (ke *LkkEncrypt) PasswordHash(password []byte, costs ...int) ([]byte, error)
  1395  ```
  1396  PasswordHash 创建密码的散列值;costs为算法的cost,范围4~31,默认10;注意:值越大越耗时.
  1397  
  1398  #### func (*LkkEncrypt) PasswordVerify
  1399  
  1400  ```go
  1401  func (ke *LkkEncrypt) PasswordVerify(password, hash []byte) bool
  1402  ```
  1403  PasswordVerify 验证密码是否和散列值匹配.
  1404  
  1405  #### func (*LkkEncrypt) RsaPrivateDecrypt
  1406  
  1407  ```go
  1408  func (ke *LkkEncrypt) RsaPrivateDecrypt(cipherText, privateKey []byte) ([]byte, error)
  1409  ```
  1410  RsaPrivateDecrypt RSA私钥解密.比加密耗时. cipherText为密文,privateKey为私钥.
  1411  
  1412  #### func (*LkkEncrypt) RsaPrivateEncrypt
  1413  
  1414  ```go
  1415  func (ke *LkkEncrypt) RsaPrivateEncrypt(clearText, privateKey []byte) ([]byte, error)
  1416  ```
  1417  RsaPrivateEncrypt RSA私钥加密.比解密耗时. clearText为明文,privateKey为私钥.
  1418  
  1419  #### func (*LkkEncrypt) RsaPublicDecrypt
  1420  
  1421  ```go
  1422  func (ke *LkkEncrypt) RsaPublicDecrypt(cipherText, publicKey []byte) ([]byte, error)
  1423  ```
  1424  RsaPublicDecrypt RSA公钥解密. cipherText为密文,publicKey为公钥.
  1425  
  1426  #### func (*LkkEncrypt) RsaPublicEncrypt
  1427  
  1428  ```go
  1429  func (ke *LkkEncrypt) RsaPublicEncrypt(clearText, publicKey []byte) ([]byte, error)
  1430  ```
  1431  RsaPublicEncrypt RSA公钥加密. clearText为明文,publicKey为公钥.
  1432  
  1433  #### type LkkFile
  1434  
  1435  ```go
  1436  type LkkFile struct {
  1437  }
  1438  ```
  1439  
  1440  LkkFile is the receiver of file utilities
  1441  
  1442  #### func (*LkkFile) AbsPath
  1443  
  1444  ```go
  1445  func (kf *LkkFile) AbsPath(fpath string) string
  1446  ```
  1447  AbsPath 获取绝对路径,path可允许不存在.
  1448  
  1449  #### func (*LkkFile) AppendFile
  1450  
  1451  ```go
  1452  func (kf *LkkFile) AppendFile(fpath string, data []byte) error
  1453  ```
  1454  AppendFile 插入文件内容.
  1455  
  1456  #### func (*LkkFile) Basename
  1457  
  1458  ```go
  1459  func (kf *LkkFile) Basename(fpath string) string
  1460  ```
  1461  Basename 返回路径中的文件名部分(包括后缀),空路径时返回".".
  1462  
  1463  #### func (*LkkFile) ChmodBatch
  1464  
  1465  ```go
  1466  func (kf *LkkFile) ChmodBatch(fpath string, filemode, dirmode os.FileMode) (res bool)
  1467  ```
  1468  ChmodBatch 批量改变路径权限模式(包括子目录和所属文件). filemode为文件权限模式,dirmode为目录权限模式.
  1469  
  1470  #### func (*LkkFile) CopyDir
  1471  
  1472  ```go
  1473  func (kf *LkkFile) CopyDir(source string, dest string, cover LkkFileCover) (int64, error)
  1474  ```
  1475  CopyDir 拷贝源目录到目标目录,cover为枚举(FILE_COVER_ALLOW、FILE_COVER_IGNORE、FILE_COVER_DENY).
  1476  
  1477  #### func (*LkkFile) CopyFile
  1478  
  1479  ```go
  1480  func (kf *LkkFile) CopyFile(source string, dest string, cover LkkFileCover) (int64, error)
  1481  ```
  1482  CopyFile
  1483  拷贝源文件到目标文件,cover为枚举(FILE_COVER_ALLOW、FILE_COVER_IGNORE、FILE_COVER_DENY).
  1484  
  1485  #### func (*LkkFile) CopyLink
  1486  
  1487  ```go
  1488  func (kf *LkkFile) CopyLink(source string, dest string) error
  1489  ```
  1490  CopyLink 拷贝链接.
  1491  
  1492  #### func (*LkkFile) CountLines
  1493  
  1494  ```go
  1495  func (kf *LkkFile) CountLines(fpath string, buffLength int) (int, error)
  1496  ```
  1497  CountLines 统计文件行数.buffLength为缓冲长度,kb.
  1498  
  1499  #### func (*LkkFile) DelDir
  1500  
  1501  ```go
  1502  func (kf *LkkFile) DelDir(dir string, delete bool) error
  1503  ```
  1504  DelDir 删除目录.delete为true时连该目录一起删除;为false时只清空该目录.
  1505  
  1506  #### func (*LkkFile) DirSize
  1507  
  1508  ```go
  1509  func (kf *LkkFile) DirSize(fpath string) int64
  1510  ```
  1511  DirSize 获取目录大小(bytes字节).
  1512  
  1513  #### func (*LkkFile) Dirname
  1514  
  1515  ```go
  1516  func (kf *LkkFile) Dirname(fpath string) string
  1517  ```
  1518  Dirname 返回路径中的目录部分,注意空路径或无目录的返回".".
  1519  
  1520  #### func (*LkkFile) FastCopy
  1521  
  1522  ```go
  1523  func (kf *LkkFile) FastCopy(source string, dest string) (int64, error)
  1524  ```
  1525  FastCopy 快速拷贝源文件到目标文件,不做安全检查.
  1526  
  1527  #### func (*LkkFile) FileSize
  1528  
  1529  ```go
  1530  func (kf *LkkFile) FileSize(fpath string) int64
  1531  ```
  1532  FileSize 获取文件大小(bytes字节);注意:文件不存在或无法访问时返回-1 .
  1533  
  1534  #### func (*LkkFile) FileTree
  1535  
  1536  ```go
  1537  func (kf *LkkFile) FileTree(fpath string, ftype LkkFileTree, recursive bool, filters ...FileFilter) []string
  1538  ```
  1539  FileTree 获取目录的文件树列表. ftype为枚举(FILE_TREE_ALL、FILE_TREE_DIR、FILE_TREE_FILE);
  1540  recursive为是否递归; filters为一个或多个文件过滤器函数,FileFilter类型.
  1541  
  1542  #### func (*LkkFile) FormatDir
  1543  
  1544  ```go
  1545  func (kf *LkkFile) FormatDir(fpath string) string
  1546  ```
  1547  FormatDir 格式化目录,将"\","//"替换为"/",且以"/"结尾.
  1548  
  1549  #### func (*LkkFile) FormatPath
  1550  
  1551  ```go
  1552  func (kf *LkkFile) FormatPath(fpath string) string
  1553  ```
  1554  FormatPath 格式化路径.
  1555  
  1556  #### func (*LkkFile) GetExt
  1557  
  1558  ```go
  1559  func (kf *LkkFile) GetExt(fpath string) string
  1560  ```
  1561  GetExt 获取文件的小写扩展名,不包括点"." .
  1562  
  1563  #### func (*LkkFile) GetFileMode
  1564  
  1565  ```go
  1566  func (kf *LkkFile) GetFileMode(fpath string) (os.FileMode, error)
  1567  ```
  1568  GetFileMode 获取路径的权限模式.
  1569  
  1570  #### func (*LkkFile) GetMime
  1571  
  1572  ```go
  1573  func (kf *LkkFile) GetMime(fpath string, fast bool) string
  1574  ```
  1575  GetMime 获取文件mime类型;fast为true时根据后缀快速获取;为false时读取文件头获取.
  1576  
  1577  #### func (*LkkFile) GetModTime
  1578  
  1579  ```go
  1580  func (kf *LkkFile) GetModTime(fpath string) (res int64)
  1581  ```
  1582  GetModTime 获取文件的修改时间戳,秒.
  1583  
  1584  #### func (*LkkFile) Glob
  1585  
  1586  ```go
  1587  func (kf *LkkFile) Glob(pattern string) ([]string, error)
  1588  ```
  1589  Glob 寻找与模式匹配的文件路径.
  1590  
  1591  #### func (*LkkFile) Img2Base64
  1592  
  1593  ```go
  1594  func (kf *LkkFile) Img2Base64(fpath string) (string, error)
  1595  ```
  1596  Img2Base64 读取图片文件,并转换为base64字符串.
  1597  
  1598  #### func (*LkkFile) IsBinary
  1599  
  1600  ```go
  1601  func (kf *LkkFile) IsBinary(fpath string) bool
  1602  ```
  1603  IsBinary 是否二进制文件(且存在).
  1604  
  1605  #### func (*LkkFile) IsDir
  1606  
  1607  ```go
  1608  func (kf *LkkFile) IsDir(fpath string) bool
  1609  ```
  1610  IsDir 是否目录(且存在).
  1611  
  1612  #### func (*LkkFile) IsExecutable
  1613  
  1614  ```go
  1615  func (kf *LkkFile) IsExecutable(fpath string) bool
  1616  ```
  1617  IsExecutable 是否可执行文件.
  1618  
  1619  #### func (*LkkFile) IsExist
  1620  
  1621  ```go
  1622  func (kf *LkkFile) IsExist(fpath string) bool
  1623  ```
  1624  IsExist 路径(文件/目录)是否存在.
  1625  
  1626  #### func (*LkkFile) IsFile
  1627  
  1628  ```go
  1629  func (kf *LkkFile) IsFile(fpath string, ftype ...LkkFileType) (res bool)
  1630  ```
  1631  IsFile 是否(某类型)文件,且存在.
  1632  ftype为枚举(FILE_TYPE_ANY、FILE_TYPE_LINK、FILE_TYPE_REGULAR、FILE_TYPE_COMMON),默认FILE_TYPE_ANY;
  1633  
  1634  #### func (*LkkFile) IsImg
  1635  
  1636  ```go
  1637  func (kf *LkkFile) IsImg(fpath string) bool
  1638  ```
  1639  IsImg 是否图片文件(仅检查后缀).
  1640  
  1641  #### func (*LkkFile) IsLink
  1642  
  1643  ```go
  1644  func (kf *LkkFile) IsLink(fpath string) bool
  1645  ```
  1646  IsLink 是否链接文件(软链接,且存在).
  1647  
  1648  #### func (*LkkFile) IsReadable
  1649  
  1650  ```go
  1651  func (kf *LkkFile) IsReadable(fpath string) bool
  1652  ```
  1653  IsReadable 路径是否可读.
  1654  
  1655  #### func (*LkkFile) IsWritable
  1656  
  1657  ```go
  1658  func (kf *LkkFile) IsWritable(fpath string) bool
  1659  ```
  1660  IsWritable 路径是否可写.
  1661  
  1662  #### func (*LkkFile) IsZip
  1663  
  1664  ```go
  1665  func (kf *LkkFile) IsZip(fpath string) bool
  1666  ```
  1667  IsZip 是否zip文件.
  1668  
  1669  #### func (*LkkFile) Md5
  1670  
  1671  ```go
  1672  func (kf *LkkFile) Md5(fpath string, length uint8) (string, error)
  1673  ```
  1674  Md5 获取文件md5值,length指定结果长度32/16.
  1675  
  1676  #### func (*LkkFile) Mkdir
  1677  
  1678  ```go
  1679  func (kf *LkkFile) Mkdir(fpath string, mode os.FileMode) error
  1680  ```
  1681  Mkdir 创建目录,允许多级.
  1682  
  1683  #### func (*LkkFile) Pathinfo
  1684  
  1685  ```go
  1686  func (kf *LkkFile) Pathinfo(fpath string, option int) map[string]string
  1687  ```
  1688  Pathinfo 获取文件路径的信息. option为要返回的信息,枚举值如下: -1: all; 1: dirname; 2: basename; 4:
  1689  extension; 8: filename; 若要查看某几项,则为它们之间的和.
  1690  
  1691  #### func (*LkkFile) ReadFile
  1692  
  1693  ```go
  1694  func (kf *LkkFile) ReadFile(fpath string) ([]byte, error)
  1695  ```
  1696  ReadFile 读取文件内容.
  1697  
  1698  #### func (*LkkFile) ReadFirstLine
  1699  
  1700  ```go
  1701  func (kf *LkkFile) ReadFirstLine(fpath string) []byte
  1702  ```
  1703  ReadFirstLine 读取文件首行.
  1704  
  1705  #### func (*LkkFile) ReadInArray
  1706  
  1707  ```go
  1708  func (kf *LkkFile) ReadInArray(fpath string) ([]string, error)
  1709  ```
  1710  ReadInArray 把整个文件读入一个数组中,每行作为一个元素.
  1711  
  1712  #### func (*LkkFile) ReadLastLine
  1713  
  1714  ```go
  1715  func (kf *LkkFile) ReadLastLine(fpath string) []byte
  1716  ```
  1717  ReadLastLine 读取文件末行.
  1718  
  1719  #### func (*LkkFile) RealPath
  1720  
  1721  ```go
  1722  func (kf *LkkFile) RealPath(fpath string) string
  1723  ```
  1724  RealPath 返回规范化的真实绝对路径名.path必须存在,若路径不存在则返回空字符串.
  1725  
  1726  #### func (*LkkFile) Rename
  1727  
  1728  ```go
  1729  func (kf *LkkFile) Rename(oldname, newname string) error
  1730  ```
  1731  Rename 重命名(或移动)文件/目录.
  1732  
  1733  #### func (*LkkFile) SafeFileName
  1734  
  1735  ```go
  1736  func (kf *LkkFile) SafeFileName(str string) string
  1737  ```
  1738  SafeFileName 将文件名转换为安全可用的字符串.
  1739  
  1740  #### func (*LkkFile) ShaX
  1741  
  1742  ```go
  1743  func (kf *LkkFile) ShaX(fpath string, x uint16) (string, error)
  1744  ```
  1745  ShaX 计算文件的 shaX 散列值,x为1/256/512.
  1746  
  1747  #### func (*LkkFile) TarGz
  1748  
  1749  ```go
  1750  func (kf *LkkFile) TarGz(src string, dstTar string, ignorePatterns ...string) (bool, error)
  1751  ```
  1752  TarGz 打包压缩tar.gz. src为源文件或目录,dstTar为打包的路径名,ignorePatterns为要忽略的文件正则.
  1753  
  1754  #### func (*LkkFile) Touch
  1755  
  1756  ```go
  1757  func (kf *LkkFile) Touch(fpath string, size int64) bool
  1758  ```
  1759  Touch 快速创建指定大小的文件,size为字节.
  1760  
  1761  #### func (*LkkFile) UnTarGz
  1762  
  1763  ```go
  1764  func (kf *LkkFile) UnTarGz(srcTar, dstDir string) (bool, error)
  1765  ```
  1766  UnTarGz 将tar.gz文件解压缩. srcTar为压缩包,dstDir为解压目录.
  1767  
  1768  #### func (*LkkFile) UnZip
  1769  
  1770  ```go
  1771  func (kf *LkkFile) UnZip(srcZip, dstDir string) (bool, error)
  1772  ```
  1773  UnZip 解压zip文件.srcZip为zip文件路径,dstDir为解压目录.
  1774  
  1775  #### func (*LkkFile) Unlink
  1776  
  1777  ```go
  1778  func (kf *LkkFile) Unlink(fpath string) error
  1779  ```
  1780  Unlink 删除文件.
  1781  
  1782  #### func (*LkkFile) WriteFile
  1783  
  1784  ```go
  1785  func (kf *LkkFile) WriteFile(fpath string, data []byte, perm ...os.FileMode) error
  1786  ```
  1787  WriteFile 将内容写入文件. fpath为文件路径;data为内容;perm为权限,默认为0655.
  1788  
  1789  #### func (*LkkFile) Zip
  1790  
  1791  ```go
  1792  func (kf *LkkFile) Zip(dst string, fpaths ...string) (bool, error)
  1793  ```
  1794  Zip 将文件或目录进行zip打包.fpaths为源文件或目录的路径.
  1795  
  1796  #### type LkkFileCover
  1797  
  1798  ```go
  1799  type LkkFileCover int8
  1800  ```
  1801  
  1802  LkkFileCover 枚举类型,文件是否覆盖
  1803  
  1804  #### type LkkFileTree
  1805  
  1806  ```go
  1807  type LkkFileTree uint8
  1808  ```
  1809  
  1810  LkkFileTree 枚举类型,文件树查找类型
  1811  
  1812  #### type LkkFileType
  1813  
  1814  ```go
  1815  type LkkFileType uint8
  1816  ```
  1817  
  1818  LkkFileType 枚举类型,文件类型
  1819  
  1820  #### type LkkNumber
  1821  
  1822  ```go
  1823  type LkkNumber struct {
  1824  }
  1825  ```
  1826  
  1827  LkkNumber is the receiver of number utilities
  1828  
  1829  #### func (*LkkNumber) AbsFloat
  1830  
  1831  ```go
  1832  func (kn *LkkNumber) AbsFloat(number float64) float64
  1833  ```
  1834  AbsFloat 浮点型取绝对值.
  1835  
  1836  #### func (*LkkNumber) AbsInt
  1837  
  1838  ```go
  1839  func (kn *LkkNumber) AbsInt(number int64) int64
  1840  ```
  1841  AbsInt 整型取绝对值.
  1842  
  1843  #### func (*LkkNumber) Average
  1844  
  1845  ```go
  1846  func (kn *LkkNumber) Average(nums ...interface{}) (res float64)
  1847  ```
  1848  Average 对任意类型序列中的数值类型求平均值,忽略非数值的.
  1849  
  1850  #### func (*LkkNumber) AverageFloat64
  1851  
  1852  ```go
  1853  func (kn *LkkNumber) AverageFloat64(nums ...float64) (res float64)
  1854  ```
  1855  AverageFloat64 对浮点数序列求平均值.
  1856  
  1857  #### func (*LkkNumber) AverageInt
  1858  
  1859  ```go
  1860  func (kn *LkkNumber) AverageInt(nums ...int) (res float64)
  1861  ```
  1862  AverageInt 对整数序列求平均值.
  1863  
  1864  #### func (*LkkNumber) ByteFormat
  1865  
  1866  ```go
  1867  func (kn *LkkNumber) ByteFormat(size float64, decimal uint8, delimiter string) string
  1868  ```
  1869  ByteFormat 格式化文件比特大小. size为文件大小,decimal为要保留的小数位数,delimiter为数字和单位间的分隔符.
  1870  
  1871  #### func (*LkkNumber) Ceil
  1872  
  1873  ```go
  1874  func (kn *LkkNumber) Ceil(value float64) float64
  1875  ```
  1876  Ceil 向上取整.
  1877  
  1878  #### func (*LkkNumber) Exp
  1879  
  1880  ```go
  1881  func (kn *LkkNumber) Exp(x float64) float64
  1882  ```
  1883  Exp 计算 e 的指数.
  1884  
  1885  #### func (*LkkNumber) Expm1
  1886  
  1887  ```go
  1888  func (kn *LkkNumber) Expm1(x float64) float64
  1889  ```
  1890  Expm1 返回 exp(x) - 1.
  1891  
  1892  #### func (*LkkNumber) FloatEqual
  1893  
  1894  ```go
  1895  func (kn *LkkNumber) FloatEqual(f1 float64, f2 float64, decimal ...uint8) (res bool)
  1896  ```
  1897  FloatEqual 比较两个浮点数是否相等.decimal为小数精确位数,默认为 FLOAT_DECIMAL .
  1898  有效数值是长度(包括小数点)为17位之内的数值,最后一位会四舍五入.
  1899  
  1900  #### func (*LkkNumber) Floor
  1901  
  1902  ```go
  1903  func (kn *LkkNumber) Floor(value float64) float64
  1904  ```
  1905  Floor 向下取整.
  1906  
  1907  #### func (*LkkNumber) GeoDistance
  1908  
  1909  ```go
  1910  func (kn *LkkNumber) GeoDistance(lng1, lat1, lng2, lat2 float64) float64
  1911  ```
  1912  GeoDistance 获取地理距离/米. 参数分别为两点的经度和纬度:lat:-90~90,lng:-180~180.
  1913  
  1914  #### func (*LkkNumber) InRange
  1915  
  1916  ```go
  1917  func (kn *LkkNumber) InRange(value interface{}, left interface{}, right interface{}) bool
  1918  ```
  1919  InRange 数值是否在某个范围内,将自动转换类型再比较.
  1920  
  1921  #### func (*LkkNumber) InRangeFloat32
  1922  
  1923  ```go
  1924  func (kn *LkkNumber) InRangeFloat32(value, left, right float32) bool
  1925  ```
  1926  InRangeFloat32 数值是否在2个32位浮点数范围内.
  1927  
  1928  #### func (*LkkNumber) InRangeFloat64
  1929  
  1930  ```go
  1931  func (kn *LkkNumber) InRangeFloat64(value, left, right float64) bool
  1932  ```
  1933  InRangeFloat64 数值是否在2个64位浮点数范围内.
  1934  
  1935  #### func (*LkkNumber) InRangeInt
  1936  
  1937  ```go
  1938  func (kn *LkkNumber) InRangeInt(value, left, right int) bool
  1939  ```
  1940  InRangeInt 数值是否在2个整数范围内.
  1941  
  1942  #### func (*LkkNumber) IsEven
  1943  
  1944  ```go
  1945  func (kn *LkkNumber) IsEven(val int) bool
  1946  ```
  1947  IsEven 变量是否偶数.
  1948  
  1949  #### func (*LkkNumber) IsNan
  1950  
  1951  ```go
  1952  func (kn *LkkNumber) IsNan(val interface{}) bool
  1953  ```
  1954  IsNan 是否为“非数值”.注意,这里复数也算“非数值”.
  1955  
  1956  #### func (*LkkNumber) IsNatural
  1957  
  1958  ```go
  1959  func (kn *LkkNumber) IsNatural(value float64) bool
  1960  ```
  1961  IsNatural 数值是否为自然数(包括0).
  1962  
  1963  #### func (*LkkNumber) IsNaturalRange
  1964  
  1965  ```go
  1966  func (kn *LkkNumber) IsNaturalRange(arr []int, strict bool) (res bool)
  1967  ```
  1968  IsNaturalRange 是否连续的自然数数组/切片,如[0,1,2,3...],其中不能有间断. strict为是否严格检查元素的顺序.
  1969  
  1970  #### func (*LkkNumber) IsNegative
  1971  
  1972  ```go
  1973  func (kn *LkkNumber) IsNegative(value float64) bool
  1974  ```
  1975  IsNegative 数值是否为负数.
  1976  
  1977  #### func (*LkkNumber) IsNonNegative
  1978  
  1979  ```go
  1980  func (kn *LkkNumber) IsNonNegative(value float64) bool
  1981  ```
  1982  IsNonNegative 数值是否为非负数.
  1983  
  1984  #### func (*LkkNumber) IsNonPositive
  1985  
  1986  ```go
  1987  func (kn *LkkNumber) IsNonPositive(value float64) bool
  1988  ```
  1989  IsNonPositive 数值是否为非正数.
  1990  
  1991  #### func (*LkkNumber) IsOdd
  1992  
  1993  ```go
  1994  func (kn *LkkNumber) IsOdd(val int) bool
  1995  ```
  1996  IsOdd 变量是否奇数.
  1997  
  1998  #### func (*LkkNumber) IsPositive
  1999  
  2000  ```go
  2001  func (kn *LkkNumber) IsPositive(value float64) bool
  2002  ```
  2003  IsPositive 数值是否为正数.
  2004  
  2005  #### func (*LkkNumber) IsWhole
  2006  
  2007  ```go
  2008  func (kn *LkkNumber) IsWhole(value float64) bool
  2009  ```
  2010  IsWhole 数值是否为整数.
  2011  
  2012  #### func (*LkkNumber) Log
  2013  
  2014  ```go
  2015  func (kn *LkkNumber) Log(x, y float64) float64
  2016  ```
  2017  Log 对数表达式,求以y为底x的对数.
  2018  
  2019  #### func (*LkkNumber) Max
  2020  
  2021  ```go
  2022  func (kn *LkkNumber) Max(nums ...interface{}) (res float64)
  2023  ```
  2024  Max 取出任意类型中数值类型的最大值,无数值类型则为0.
  2025  
  2026  #### func (*LkkNumber) MaxFloat64
  2027  
  2028  ```go
  2029  func (kn *LkkNumber) MaxFloat64(nums ...float64) (res float64)
  2030  ```
  2031  MaxFloat64 64位浮点数序列求最大值.
  2032  
  2033  #### func (*LkkNumber) MaxInt
  2034  
  2035  ```go
  2036  func (kn *LkkNumber) MaxInt(nums ...int) (res int)
  2037  ```
  2038  MaxInt 整数序列求最大值.
  2039  
  2040  #### func (*LkkNumber) Min
  2041  
  2042  ```go
  2043  func (kn *LkkNumber) Min(nums ...interface{}) (res float64)
  2044  ```
  2045  Min 取出任意类型中数值类型的最小值,无数值类型则为0.
  2046  
  2047  #### func (*LkkNumber) MinFloat64
  2048  
  2049  ```go
  2050  func (kn *LkkNumber) MinFloat64(nums ...float64) (res float64)
  2051  ```
  2052  MinFloat64 64位浮点数序列求最小值.
  2053  
  2054  #### func (*LkkNumber) MinInt
  2055  
  2056  ```go
  2057  func (kn *LkkNumber) MinInt(nums ...int) (res int)
  2058  ```
  2059  MinInt 整数序列求最小值.
  2060  
  2061  #### func (*LkkNumber) NearLogarithm
  2062  
  2063  ```go
  2064  func (kn *LkkNumber) NearLogarithm(num, base int, left bool) int
  2065  ```
  2066  NearLogarithm 求以 base 为底 num 的对数临近值. num为自然数,base为正整数,left是否向左取整.
  2067  
  2068  #### func (*LkkNumber) NumSign
  2069  
  2070  ```go
  2071  func (kn *LkkNumber) NumSign(value float64) (res int8)
  2072  ```
  2073  NumSign 返回数值的符号.值>0为1,<0为-1,其他为0.
  2074  
  2075  #### func (*LkkNumber) NumberFormat
  2076  
  2077  ```go
  2078  func (kn *LkkNumber) NumberFormat(number float64, decimal uint8, point, thousand string) string
  2079  ```
  2080  NumberFormat 以千位分隔符方式格式化一个数字.
  2081  decimal为要保留的小数位数,point为小数点显示的字符,thousand为千位分隔符显示的字符.
  2082  有效数值是长度(包括小数点)为17位之内的数值,最后一位会四舍五入.
  2083  
  2084  #### func (*LkkNumber) Percent
  2085  
  2086  ```go
  2087  func (kn *LkkNumber) Percent(val, total interface{}) float64
  2088  ```
  2089  Percent 返回百分比((val/total) *100).
  2090  
  2091  #### func (*LkkNumber) Pow
  2092  
  2093  ```go
  2094  func (kn *LkkNumber) Pow(x, y float64) float64
  2095  ```
  2096  Pow 指数表达式,求x的y次方.
  2097  
  2098  #### func (*LkkNumber) Rand
  2099  
  2100  ```go
  2101  func (kn *LkkNumber) Rand(min, max int) int
  2102  ```
  2103  Rand RandInt的别名.
  2104  
  2105  #### func (*LkkNumber) RandFloat64
  2106  
  2107  ```go
  2108  func (kn *LkkNumber) RandFloat64(min, max float64) float64
  2109  ```
  2110  RandFloat64 生成一个min~max范围内的随机float64浮点数.
  2111  
  2112  #### func (*LkkNumber) RandInt
  2113  
  2114  ```go
  2115  func (kn *LkkNumber) RandInt(min, max int) int
  2116  ```
  2117  RandInt 生成一个min~max范围内的随机int整数.
  2118  
  2119  #### func (*LkkNumber) RandInt64
  2120  
  2121  ```go
  2122  func (kn *LkkNumber) RandInt64(min, max int64) int64
  2123  ```
  2124  RandInt64 生成一个min~max范围内的随机int64整数.
  2125  
  2126  #### func (*LkkNumber) Range
  2127  
  2128  ```go
  2129  func (kn *LkkNumber) Range(start, end int) []int
  2130  ```
  2131  Range 根据范围创建数组,包含指定的元素.
  2132  start为起始元素值,end为末尾元素值.若start<end,返回升序的数组;若start>end,返回降序的数组.
  2133  
  2134  #### func (*LkkNumber) Round
  2135  
  2136  ```go
  2137  func (kn *LkkNumber) Round(value float64) float64
  2138  ```
  2139  Round 对浮点数(的整数)进行四舍五入.
  2140  
  2141  #### func (*LkkNumber) RoundPlus
  2142  
  2143  ```go
  2144  func (kn *LkkNumber) RoundPlus(value float64, precision uint8) float64
  2145  ```
  2146  RoundPlus 对指定的小数位进行四舍五入. precision为小数位数.
  2147  
  2148  #### func (*LkkNumber) SplitNaturalNum
  2149  
  2150  ```go
  2151  func (kn *LkkNumber) SplitNaturalNum(num, base int) []int
  2152  ```
  2153  SplitNaturalNum 将自然数 num 按底数 base 进行拆解.
  2154  
  2155  #### func (*LkkNumber) Sum
  2156  
  2157  ```go
  2158  func (kn *LkkNumber) Sum(nums ...interface{}) (res float64)
  2159  ```
  2160  Sum 对任意类型序列中的数值类型求和,忽略非数值的.
  2161  
  2162  #### func (*LkkNumber) SumFloat64
  2163  
  2164  ```go
  2165  func (kn *LkkNumber) SumFloat64(nums ...float64) float64
  2166  ```
  2167  SumFloat64 浮点数求和.
  2168  
  2169  #### func (*LkkNumber) SumInt
  2170  
  2171  ```go
  2172  func (kn *LkkNumber) SumInt(nums ...int) int
  2173  ```
  2174  SumInt 整数求和.
  2175  
  2176  #### type LkkOS
  2177  
  2178  ```go
  2179  type LkkOS struct {
  2180  }
  2181  ```
  2182  
  2183  LkkOS is the receiver of OS utilities
  2184  
  2185  #### func (*LkkOS) Chdir
  2186  
  2187  ```go
  2188  func (ko *LkkOS) Chdir(dir string) error
  2189  ```
  2190  Chdir 改变/进入新的工作目录.
  2191  
  2192  #### func (*LkkOS) Chmod
  2193  
  2194  ```go
  2195  func (ko *LkkOS) Chmod(filename string, mode os.FileMode) bool
  2196  ```
  2197  Chmod 改变文件模式.
  2198  
  2199  #### func (*LkkOS) Chown
  2200  
  2201  ```go
  2202  func (ko *LkkOS) Chown(filename string, uid, gid int) bool
  2203  ```
  2204  Chown 改变文件的所有者.
  2205  
  2206  #### func (*LkkOS) ClientIp
  2207  
  2208  ```go
  2209  func (ko *LkkOS) ClientIp(req *http.Request) string
  2210  ```
  2211  ClientIp 获取客户端真实IP,req为http请求.
  2212  
  2213  #### func (*LkkOS) CpuUsage
  2214  
  2215  ```go
  2216  func (ko *LkkOS) CpuUsage() (user, idle, total uint64)
  2217  ```
  2218  CpuUsage 获取CPU使用率(darwin系统必须使用cgo),单位jiffies(节拍数). user为用户态(用户进程)的运行时间,
  2219  idle为空闲时间, total为累计时间.
  2220  
  2221  #### func (*LkkOS) DiskUsage
  2222  
  2223  ```go
  2224  func (ko *LkkOS) DiskUsage(path string) (used, free, total uint64)
  2225  ```
  2226  DiskUsage 获取磁盘(目录)使用情况,单位字节.参数path为路径. used为已用, free为空闲, total为总数.
  2227  
  2228  #### func (*LkkOS) Exec
  2229  
  2230  ```go
  2231  func (ko *LkkOS) Exec(command string) (retInt int, outStr, errStr []byte)
  2232  ```
  2233  Exec 执行一个外部命令. retInt为1时失败,为0时成功;outStr为执行命令的输出;errStr为错误输出. 命令如 "ls -a"
  2234  "/bin/bash -c \"ls -a\""
  2235  
  2236  #### func (*LkkOS) ForceGC
  2237  
  2238  ```go
  2239  func (ko *LkkOS) ForceGC()
  2240  ```
  2241  ForceGC 强制手动GC垃圾回收(阻塞).
  2242  
  2243  #### func (*LkkOS) GetBiosInfo
  2244  
  2245  ```go
  2246  func (ko *LkkOS) GetBiosInfo() *BiosInfo
  2247  ```
  2248  GetBiosInfo 获取BIOS信息. 注意:Mac机器没有BIOS信息,它使用EFI.
  2249  
  2250  #### func (*LkkOS) GetBoardInfo
  2251  
  2252  ```go
  2253  func (ko *LkkOS) GetBoardInfo() *BoardInfo
  2254  ```
  2255  GetBoardInfo 获取Board信息.
  2256  
  2257  #### func (*LkkOS) GetCpuInfo
  2258  
  2259  ```go
  2260  func (ko *LkkOS) GetCpuInfo() *CpuInfo
  2261  ```
  2262  GetCpuInfo 获取CPU信息.
  2263  
  2264  #### func (*LkkOS) GetEndian
  2265  
  2266  ```go
  2267  func (ko *LkkOS) GetEndian() binary.ByteOrder
  2268  ```
  2269  GetEndian 获取系统字节序类型,小端返回binary.LittleEndian,大端返回binary.BigEndian .
  2270  
  2271  #### func (*LkkOS) GetHostByIp
  2272  
  2273  ```go
  2274  func (ko *LkkOS) GetHostByIp(ipAddress string) (string, error)
  2275  ```
  2276  GetHostByIp 获取指定的IP地址对应的主机名.
  2277  
  2278  #### func (*LkkOS) GetIPs
  2279  
  2280  ```go
  2281  func (ko *LkkOS) GetIPs() (ips []string)
  2282  ```
  2283  GetIPs 获取本机的IP列表.
  2284  
  2285  #### func (*LkkOS) GetIpByHostname
  2286  
  2287  ```go
  2288  func (ko *LkkOS) GetIpByHostname(hostname string) (string, error)
  2289  ```
  2290  GetIpByHostname 返回主机名对应的 IPv4地址.
  2291  
  2292  #### func (*LkkOS) GetIpsByDomain
  2293  
  2294  ```go
  2295  func (ko *LkkOS) GetIpsByDomain(domain string) ([]string, error)
  2296  ```
  2297  GetIpsByHost 获取互联网域名/主机名对应的 IPv4 地址列表.
  2298  
  2299  #### func (*LkkOS) GetMacAddrs
  2300  
  2301  ```go
  2302  func (ko *LkkOS) GetMacAddrs() (macAddrs []string)
  2303  ```
  2304  GetMacAddrs 获取本机的Mac网卡地址列表.
  2305  
  2306  #### func (*LkkOS) GetPidByPort
  2307  
  2308  ```go
  2309  func (ko *LkkOS) GetPidByPort(port int) (pid int)
  2310  ```
  2311  GetPidByPort 根据端口号获取监听的进程PID. linux可能要求root权限; darwin依赖lsof; windows依赖netstat.
  2312  
  2313  #### func (*LkkOS) GetProcessExecPath
  2314  
  2315  ```go
  2316  func (ko *LkkOS) GetProcessExecPath(pid int) string
  2317  ```
  2318  GetProcessExecPath 根据PID获取进程的执行路径.
  2319  
  2320  #### func (*LkkOS) GetSystemInfo
  2321  
  2322  ```go
  2323  func (ko *LkkOS) GetSystemInfo() *SystemInfo
  2324  ```
  2325  GetSystemInfo 获取系统运行信息.
  2326  
  2327  #### func (*LkkOS) GetTempDir
  2328  
  2329  ```go
  2330  func (ko *LkkOS) GetTempDir() string
  2331  ```
  2332  GetTempDir 返回用于临时文件的目录.
  2333  
  2334  #### func (*LkkOS) Getcwd
  2335  
  2336  ```go
  2337  func (ko *LkkOS) Getcwd() (string, error)
  2338  ```
  2339  Getcwd 取得当前工作目录(程序可能在任务中进行多次目录切换).
  2340  
  2341  #### func (*LkkOS) Getenv
  2342  
  2343  ```go
  2344  func (ko *LkkOS) Getenv(varname string, defvalue ...string) string
  2345  ```
  2346  Getenv 获取一个环境变量的值.defvalue为默认值.
  2347  
  2348  #### func (*LkkOS) GoMemory
  2349  
  2350  ```go
  2351  func (ko *LkkOS) GoMemory() uint64
  2352  ```
  2353  MemoryGetUsage 获取当前go程序的内存使用,返回字节数.
  2354  
  2355  #### func (*LkkOS) HomeDir
  2356  
  2357  ```go
  2358  func (ko *LkkOS) HomeDir() (string, error)
  2359  ```
  2360  HomeDir 获取当前用户的主目录.
  2361  
  2362  #### func (*LkkOS) Hostname
  2363  
  2364  ```go
  2365  func (ko *LkkOS) Hostname() (string, error)
  2366  ```
  2367  Hostname 获取主机名.
  2368  
  2369  #### func (*LkkOS) IsLinux
  2370  
  2371  ```go
  2372  func (ko *LkkOS) IsLinux() bool
  2373  ```
  2374  IsLinux 当前操作系统是否Linux.
  2375  
  2376  #### func (*LkkOS) IsLittleEndian
  2377  
  2378  ```go
  2379  func (ko *LkkOS) IsLittleEndian() bool
  2380  ```
  2381  IsLittleEndian 系统字节序类型是否小端存储.
  2382  
  2383  #### func (*LkkOS) IsMac
  2384  
  2385  ```go
  2386  func (ko *LkkOS) IsMac() bool
  2387  ```
  2388  IsMac 当前操作系统是否Mac OS/X.
  2389  
  2390  #### func (*LkkOS) IsPortOpen
  2391  
  2392  ```go
  2393  func (ko *LkkOS) IsPortOpen(host string, port interface{}, protocols ...string) bool
  2394  ```
  2395  IsPortOpen 检查主机端口是否开放. host为主机名;port为(整型/字符串)端口号;protocols为协议名称,可选,默认tcp.
  2396  
  2397  #### func (*LkkOS) IsPrivateIp
  2398  
  2399  ```go
  2400  func (ko *LkkOS) IsPrivateIp(str string) (bool, error)
  2401  ```
  2402  IsPrivateIp 是否私有IP地址(ipv4/ipv6).
  2403  
  2404  #### func (*LkkOS) IsProcessExists
  2405  
  2406  ```go
  2407  func (ko *LkkOS) IsProcessExists(pid int) (res bool)
  2408  ```
  2409  IsProcessExists 进程是否存在.
  2410  
  2411  #### func (*LkkOS) IsPublicIP
  2412  
  2413  ```go
  2414  func (ko *LkkOS) IsPublicIP(str string) (bool, error)
  2415  ```
  2416  IsPublicIP 是否公网IPv4.
  2417  
  2418  #### func (*LkkOS) IsWindows
  2419  
  2420  ```go
  2421  func (ko *LkkOS) IsWindows() bool
  2422  ```
  2423  IsWindows 当前操作系统是否Windows.
  2424  
  2425  #### func (*LkkOS) LocalIP
  2426  
  2427  ```go
  2428  func (ko *LkkOS) LocalIP() (string, error)
  2429  ```
  2430  LocalIP 获取本机第一个NIC's IP.
  2431  
  2432  #### func (*LkkOS) MemoryUsage
  2433  
  2434  ```go
  2435  func (ko *LkkOS) MemoryUsage(virtual bool) (used, free, total uint64)
  2436  ```
  2437  MemoryUsage 获取内存使用率,单位字节. 参数 virtual(仅支持linux),是否取虚拟内存. used为已用, free为空闲,
  2438  total为总数.
  2439  
  2440  #### func (*LkkOS) OutboundIP
  2441  
  2442  ```go
  2443  func (ko *LkkOS) OutboundIP() (string, error)
  2444  ```
  2445  OutboundIP 获取本机的出口IP.
  2446  
  2447  #### func (*LkkOS) PrivateCIDR
  2448  
  2449  ```go
  2450  func (ko *LkkOS) PrivateCIDR() []*net.IPNet
  2451  ```
  2452  PrivateCIDR 获取私有网段的CIDR(无类别域间路由).
  2453  
  2454  #### func (*LkkOS) Pwd
  2455  
  2456  ```go
  2457  func (ko *LkkOS) Pwd() string
  2458  ```
  2459  Pwd 获取当前程序运行所在的路径,注意和Getwd有所不同. 若当前执行的是链接文件,则会指向真实二进制程序的所在目录.
  2460  
  2461  #### func (*LkkOS) Setenv
  2462  
  2463  ```go
  2464  func (ko *LkkOS) Setenv(varname, data string) error
  2465  ```
  2466  Setenv 设置一个环境变量的值.
  2467  
  2468  #### func (*LkkOS) System
  2469  
  2470  ```go
  2471  func (ko *LkkOS) System(command string) (retInt int, outStr, errStr []byte)
  2472  ```
  2473  System 与Exec相同,但会同时打印标准输出和标准错误.
  2474  
  2475  #### func (*LkkOS) TriggerGC
  2476  
  2477  ```go
  2478  func (ko *LkkOS) TriggerGC()
  2479  ```
  2480  TriggerGC 触发GC(非阻塞).
  2481  
  2482  #### func (*LkkOS) Unsetenv
  2483  
  2484  ```go
  2485  func (ko *LkkOS) Unsetenv(varname string) error
  2486  ```
  2487  Unsetenv 删除一个环境变量.
  2488  
  2489  #### func (*LkkOS) Uptime
  2490  
  2491  ```go
  2492  func (ko *LkkOS) Uptime() (uint64, error)
  2493  ```
  2494  Uptime 获取系统运行时间,秒.
  2495  
  2496  #### type LkkPKCSType
  2497  
  2498  ```go
  2499  type LkkPKCSType int8
  2500  ```
  2501  
  2502  LkkPKCSType 枚举类型,PKCS填充类型
  2503  
  2504  #### type LkkPadType
  2505  
  2506  ```go
  2507  type LkkPadType uint8
  2508  ```
  2509  
  2510  LkkPadType 枚举类型,字符串填充类型
  2511  
  2512  #### type LkkRandString
  2513  
  2514  ```go
  2515  type LkkRandString uint8
  2516  ```
  2517  
  2518  LkkRandString 枚举类型,随机字符串类型
  2519  
  2520  #### type LkkString
  2521  
  2522  ```go
  2523  type LkkString struct {
  2524  }
  2525  ```
  2526  
  2527  LkkString is the receiver of string utilities
  2528  
  2529  #### func (*LkkString) Addslashes
  2530  
  2531  ```go
  2532  func (ks *LkkString) Addslashes(str string) string
  2533  ```
  2534  Addslashes 使用反斜线引用字符串.
  2535  
  2536  #### func (*LkkString) AtWho
  2537  
  2538  ```go
  2539  func (ks *LkkString) AtWho(text string, minLen ...int) []string
  2540  ```
  2541  AtWho 查找被@的用户名.minLen为用户名最小长度,默认5.
  2542  
  2543  #### func (*LkkString) Big5ToUtf8
  2544  
  2545  ```go
  2546  func (ks *LkkString) Big5ToUtf8(s []byte) ([]byte, error)
  2547  ```
  2548  Big5ToUtf8 BIG5转UTF-8编码.
  2549  
  2550  #### func (*LkkString) Br2nl
  2551  
  2552  ```go
  2553  func (ks *LkkString) Br2nl(str string) string
  2554  ```
  2555  Br2nl 将br标签转换为换行符.
  2556  
  2557  #### func (*LkkString) Chr
  2558  
  2559  ```go
  2560  func (ks *LkkString) Chr(chr uint) string
  2561  ```
  2562  Chr 返回相对应于 ASCII 所指定的单个字符.
  2563  
  2564  #### func (*LkkString) ChunkSplit
  2565  
  2566  ```go
  2567  func (ks *LkkString) ChunkSplit(str string, chunklen uint, end string) string
  2568  ```
  2569  ChunkSplit 将字符串分割成小块.str为要分割的字符,chunklen为分割的尺寸,end为行尾序列符号.
  2570  
  2571  #### func (*LkkString) ClearUrlPrefix
  2572  
  2573  ```go
  2574  func (ks *LkkString) ClearUrlPrefix(str string, prefix ...string) string
  2575  ```
  2576  ClearUrlPrefix 清除URL的前缀; str为URL字符串,prefix为前缀,默认"/".
  2577  
  2578  #### func (*LkkString) ClearUrlSuffix
  2579  
  2580  ```go
  2581  func (ks *LkkString) ClearUrlSuffix(str string, suffix ...string) string
  2582  ```
  2583  ClearUrlSuffix 清除URL的后缀; str为URL字符串,suffix为后缀,默认"/".
  2584  
  2585  #### func (*LkkString) ClosestWord
  2586  
  2587  ```go
  2588  func (ks *LkkString) ClosestWord(word string, searchs []string) (string, int)
  2589  ```
  2590  ClosestWord 获取与原字符串相似度最高的字符串,以及它们的编辑距离. word为原字符串,searchs为待查找的字符串数组.
  2591  
  2592  #### func (*LkkString) CountBase64Byte
  2593  
  2594  ```go
  2595  func (ks *LkkString) CountBase64Byte(str string) (res int)
  2596  ```
  2597  CountBase64Byte 粗略统计base64字符串大小,字节.
  2598  
  2599  #### func (*LkkString) CountWords
  2600  
  2601  ```go
  2602  func (ks *LkkString) CountWords(str string) (int, map[string]int)
  2603  ```
  2604  CountWords 统计字符串中单词的使用情况. 返回结果:单词总数;和一个字典,包含每个单词的单独统计. 因为没有分词,对中文尚未很好支持.
  2605  
  2606  #### func (*LkkString) Crc32
  2607  
  2608  ```go
  2609  func (ks *LkkString) Crc32(str string) uint32
  2610  ```
  2611  Crc32 计算一个字符串的 crc32 多项式.
  2612  
  2613  #### func (*LkkString) DBC2SBC
  2614  
  2615  ```go
  2616  func (ks *LkkString) DBC2SBC(s string) string
  2617  ```
  2618  DBC2SBC 半角转全角.
  2619  
  2620  #### func (*LkkString) DetectEncoding
  2621  
  2622  ```go
  2623  func (ks *LkkString) DetectEncoding(str string) (res string)
  2624  ```
  2625  DetectEncoding 匹配字符编码,TODO.
  2626  
  2627  #### func (*LkkString) Dstrpos
  2628  
  2629  ```go
  2630  func (ks *LkkString) Dstrpos(str string, arr []string, chkCase bool) (bool, string)
  2631  ```
  2632  Dstrpos 检查字符串str是否包含数组arr的元素之一,返回检查结果和匹配的字符串. chkCase为是否检查大小写.
  2633  
  2634  #### func (*LkkString) EndsWith
  2635  
  2636  ```go
  2637  func (ks *LkkString) EndsWith(str, sub string, ignoreCase bool) bool
  2638  ```
  2639  EndsWith 字符串str是否以sub结尾.
  2640  
  2641  #### func (*LkkString) EndsWiths
  2642  
  2643  ```go
  2644  func (ks *LkkString) EndsWiths(str string, subs []string, ignoreCase bool) (res bool)
  2645  ```
  2646  EndsWiths 字符串str是否以subs其中之一为结尾.
  2647  
  2648  #### func (*LkkString) Explode
  2649  
  2650  ```go
  2651  func (ks *LkkString) Explode(str string, delimiters ...string) (res []string)
  2652  ```
  2653  Explode 字符串分割.delimiters为分隔符,可选,支持多个.
  2654  
  2655  #### func (*LkkString) FirstLetter
  2656  
  2657  ```go
  2658  func (ks *LkkString) FirstLetter(str string) string
  2659  ```
  2660  FirstLetter 获取字符串首字母.
  2661  
  2662  #### func (*LkkString) FormatUrl
  2663  
  2664  ```go
  2665  func (ks *LkkString) FormatUrl(str string) string
  2666  ```
  2667  FormatUrl 格式化URL.
  2668  
  2669  #### func (*LkkString) GbkToUtf8
  2670  
  2671  ```go
  2672  func (ks *LkkString) GbkToUtf8(s []byte) ([]byte, error)
  2673  ```
  2674  GbkToUtf8 GBK转UTF-8编码.
  2675  
  2676  #### func (*LkkString) GetDomain
  2677  
  2678  ```go
  2679  func (ks *LkkString) GetDomain(str string, isMain ...bool) string
  2680  ```
  2681  GetDomain 从URL字符串中获取域名.
  2682  可选参数isMain,默认为false,取完整域名;为true时,取主域名(如abc.test.com取test.com).
  2683  
  2684  #### func (*LkkString) GetEquationValue
  2685  
  2686  ```go
  2687  func (ks *LkkString) GetEquationValue(str, name string) (res string)
  2688  ```
  2689  GetEquationValue 获取等式str中变量name的值.
  2690  
  2691  #### func (*LkkString) Gravatar
  2692  
  2693  ```go
  2694  func (ks *LkkString) Gravatar(email string, size uint16) string
  2695  ```
  2696  Gravatar 获取Gravatar头像地址. email为邮箱;size为头像尺寸像素.
  2697  
  2698  #### func (*LkkString) HasChinese
  2699  
  2700  ```go
  2701  func (ks *LkkString) HasChinese(str string) bool
  2702  ```
  2703  HasChinese 字符串是否含有中文.
  2704  
  2705  #### func (*LkkString) HasEmoji
  2706  
  2707  ```go
  2708  func (ks *LkkString) HasEmoji(str string) bool
  2709  ```
  2710  HasEmoji 字符串是否含有表情符.
  2711  
  2712  #### func (*LkkString) HasEnglish
  2713  
  2714  ```go
  2715  func (ks *LkkString) HasEnglish(str string) bool
  2716  ```
  2717  HasEnglish 是否含有英文字符,HasLetter的别名.
  2718  
  2719  #### func (*LkkString) HasFullWidth
  2720  
  2721  ```go
  2722  func (ks *LkkString) HasFullWidth(str string) bool
  2723  ```
  2724  HasFullWidth 是否含有全角字符.
  2725  
  2726  #### func (*LkkString) HasHalfWidth
  2727  
  2728  ```go
  2729  func (ks *LkkString) HasHalfWidth(str string) bool
  2730  ```
  2731  HasHalfWidth 是否含有半角字符.
  2732  
  2733  #### func (*LkkString) HasLetter
  2734  
  2735  ```go
  2736  func (ks *LkkString) HasLetter(str string) bool
  2737  ```
  2738  HasLetter 字符串是否含有(英文)字母.
  2739  
  2740  #### func (*LkkString) HasSpecialChar
  2741  
  2742  ```go
  2743  func (ks *LkkString) HasSpecialChar(str string) bool
  2744  ```
  2745  HasSpecialChar 字符串是否含有特殊字符.
  2746  
  2747  #### func (*LkkString) HasWhitespace
  2748  
  2749  ```go
  2750  func (ks *LkkString) HasWhitespace(str string) bool
  2751  ```
  2752  HasWhitespace 是否带有空白字符.
  2753  
  2754  #### func (*LkkString) HideCard
  2755  
  2756  ```go
  2757  func (ks *LkkString) HideCard(card string) string
  2758  ```
  2759  HideCard 隐藏证件号码.
  2760  
  2761  #### func (*LkkString) HideMobile
  2762  
  2763  ```go
  2764  func (ks *LkkString) HideMobile(mobile string) string
  2765  ```
  2766  HideMobile 隐藏手机号.
  2767  
  2768  #### func (*LkkString) HideTrueName
  2769  
  2770  ```go
  2771  func (ks *LkkString) HideTrueName(name string) string
  2772  ```
  2773  HideTrueName 隐藏真实名称(如姓名、账号、公司等).
  2774  
  2775  #### func (*LkkString) Html2Text
  2776  
  2777  ```go
  2778  func (ks *LkkString) Html2Text(str string) string
  2779  ```
  2780  Html2Text 将html转换为纯文本.
  2781  
  2782  #### func (*LkkString) Htmlentities
  2783  
  2784  ```go
  2785  func (ks *LkkString) Htmlentities(str string) string
  2786  ```
  2787  Htmlentities 将字符转换为 HTML 转义字符.
  2788  
  2789  #### func (*LkkString) HtmlentityDecode
  2790  
  2791  ```go
  2792  func (ks *LkkString) HtmlentityDecode(str string) string
  2793  ```
  2794  HtmlentityDecode 将HTML实体转换为它们对应的字符.
  2795  
  2796  #### func (*LkkString) HttpBuildQuery
  2797  
  2798  ```go
  2799  func (ks *LkkString) HttpBuildQuery(queryData url.Values) string
  2800  ```
  2801  HttpBuildQuery 根据参数生成 URL-encode 之后的请求字符串.
  2802  
  2803  #### func (*LkkString) Img2Base64
  2804  
  2805  ```go
  2806  func (ks *LkkString) Img2Base64(content []byte, ext ...string) string
  2807  ```
  2808  Img2Base64 将图片字节转换为base64字符串.ext为图片扩展名,默认jpg.
  2809  
  2810  #### func (*LkkString) Index
  2811  
  2812  ```go
  2813  func (ks *LkkString) Index(str, sub string, ignoreCase bool) int
  2814  ```
  2815  Index 查找子串sub在字符串str中第一次出现的位置,不存在则返回-1; ignoreCase为是否忽略大小写.
  2816  
  2817  #### func (*LkkString) IsASCII
  2818  
  2819  ```go
  2820  func (ks *LkkString) IsASCII(str string) bool
  2821  ```
  2822  IsASCII 是否ASCII字符串.
  2823  
  2824  #### func (*LkkString) IsAlphaNumeric
  2825  
  2826  ```go
  2827  func (ks *LkkString) IsAlphaNumeric(str string) bool
  2828  ```
  2829  IsAlphaNumeric 是否字母或数字.
  2830  
  2831  #### func (*LkkString) IsBase64
  2832  
  2833  ```go
  2834  func (ks *LkkString) IsBase64(str string) bool
  2835  ```
  2836  IsBase64 是否base64字符串.
  2837  
  2838  #### func (*LkkString) IsBase64Image
  2839  
  2840  ```go
  2841  func (ks *LkkString) IsBase64Image(str string) bool
  2842  ```
  2843  IsBase64Image 是否base64编码的图片.
  2844  
  2845  #### func (*LkkString) IsBlank
  2846  
  2847  ```go
  2848  func (ks *LkkString) IsBlank(str string) bool
  2849  ```
  2850  IsBlank 是否空(空白)字符串.
  2851  
  2852  #### func (*LkkString) IsChinese
  2853  
  2854  ```go
  2855  func (ks *LkkString) IsChinese(str string) bool
  2856  ```
  2857  IsChinese 字符串是否全部中文.
  2858  
  2859  #### func (*LkkString) IsChineseName
  2860  
  2861  ```go
  2862  func (ks *LkkString) IsChineseName(str string) bool
  2863  ```
  2864  IsChineseName 字符串是否中文名称.
  2865  
  2866  #### func (*LkkString) IsCreditNo
  2867  
  2868  ```go
  2869  func (ks *LkkString) IsCreditNo(str string) (bool, string)
  2870  ```
  2871  IsCreditNo 检查是否(15或18位)身份证号码,并返回经校验的号码.
  2872  
  2873  #### func (*LkkString) IsDNSName
  2874  
  2875  ```go
  2876  func (ks *LkkString) IsDNSName(str string) bool
  2877  ```
  2878  IsDNSName 是否DNS名称.
  2879  
  2880  #### func (*LkkString) IsDialAddr
  2881  
  2882  ```go
  2883  func (ks *LkkString) IsDialAddr(str string) bool
  2884  ```
  2885  IsDialAddr 是否网络拨号地址(形如127.0.0.1:80),用于net.Dial()检查.
  2886  
  2887  #### func (*LkkString) IsEmail
  2888  
  2889  ```go
  2890  func (ks *LkkString) IsEmail(email string, validateHost bool) (bool, error)
  2891  ```
  2892  IsEmail 检查字符串是否邮箱.参数validateTrue,是否验证邮箱主机的真实性.
  2893  
  2894  #### func (*LkkString) IsEmpty
  2895  
  2896  ```go
  2897  func (ks *LkkString) IsEmpty(str string) bool
  2898  ```
  2899  IsEmpty 字符串是否为空(包括空格).
  2900  
  2901  #### func (*LkkString) IsEnglish
  2902  
  2903  ```go
  2904  func (ks *LkkString) IsEnglish(str string, letterCase LkkCaseSwitch) bool
  2905  ```
  2906  IsEnglish 字符串是否纯英文.letterCase是否检查大小写,枚举值(CASE_NONE,CASE_LOWER,CASE_UPPER).
  2907  
  2908  #### func (*LkkString) IsGbk
  2909  
  2910  ```go
  2911  func (ks *LkkString) IsGbk(s []byte) (res bool)
  2912  ```
  2913  IsGbk 字符串是否GBK编码.
  2914  
  2915  #### func (*LkkString) IsHexcolor
  2916  
  2917  ```go
  2918  func (ks *LkkString) IsHexcolor(str string) (bool, string)
  2919  ```
  2920  IsHexcolor 检查是否十六进制颜色,并返回带"#"的修正值.
  2921  
  2922  #### func (*LkkString) IsHost
  2923  
  2924  ```go
  2925  func (ks *LkkString) IsHost(str string) bool
  2926  ```
  2927  IsHost 字符串是否主机名(IP或DNS名称).
  2928  
  2929  #### func (*LkkString) IsIP
  2930  
  2931  ```go
  2932  func (ks *LkkString) IsIP(str string) bool
  2933  ```
  2934  IsIP 检查字符串是否IP地址.
  2935  
  2936  #### func (*LkkString) IsIPv4
  2937  
  2938  ```go
  2939  func (ks *LkkString) IsIPv4(str string) bool
  2940  ```
  2941  IsIPv4 检查字符串是否IPv4地址.
  2942  
  2943  #### func (*LkkString) IsIPv6
  2944  
  2945  ```go
  2946  func (ks *LkkString) IsIPv6(str string) bool
  2947  ```
  2948  IsIPv6 检查字符串是否IPv6地址.
  2949  
  2950  #### func (*LkkString) IsJSON
  2951  
  2952  ```go
  2953  func (ks *LkkString) IsJSON(str string) bool
  2954  ```
  2955  IsJSON 字符串是否合法的json格式.
  2956  
  2957  #### func (*LkkString) IsLetters
  2958  
  2959  ```go
  2960  func (ks *LkkString) IsLetters(str string) bool
  2961  ```
  2962  IsLetters 字符串是否全(英文)字母组成.
  2963  
  2964  #### func (*LkkString) IsLower
  2965  
  2966  ```go
  2967  func (ks *LkkString) IsLower(str string) bool
  2968  ```
  2969  IsLower 字符串是否全部小写.
  2970  
  2971  #### func (*LkkString) IsMACAddr
  2972  
  2973  ```go
  2974  func (ks *LkkString) IsMACAddr(str string) bool
  2975  ```
  2976  IsMACAddr 是否MAC物理网卡地址.
  2977  
  2978  #### func (*LkkString) IsMd5
  2979  
  2980  ```go
  2981  func (ks *LkkString) IsMd5(str string) bool
  2982  ```
  2983  IsMd5 是否md5值.
  2984  
  2985  #### func (*LkkString) IsMobilecn
  2986  
  2987  ```go
  2988  func (ks *LkkString) IsMobilecn(str string) bool
  2989  ```
  2990  IsMobilecn 检查字符串是否中国大陆手机号.
  2991  
  2992  #### func (*LkkString) IsMultibyte
  2993  
  2994  ```go
  2995  func (ks *LkkString) IsMultibyte(str string) bool
  2996  ```
  2997  IsMultibyte 字符串是否含有多字节字符.
  2998  
  2999  #### func (*LkkString) IsNumeric
  3000  
  3001  ```go
  3002  func (ks *LkkString) IsNumeric(str string) bool
  3003  ```
  3004  IsNumeric 字符串是否数值(不包含复数和科学计数法).
  3005  
  3006  #### func (*LkkString) IsPhone
  3007  
  3008  ```go
  3009  func (ks *LkkString) IsPhone(str string) bool
  3010  ```
  3011  IsPhone 是否电话号码(手机或固话).
  3012  
  3013  #### func (*LkkString) IsRGBcolor
  3014  
  3015  ```go
  3016  func (ks *LkkString) IsRGBcolor(str string) bool
  3017  ```
  3018  IsRGBcolor 检查字符串是否RGB颜色格式.
  3019  
  3020  #### func (*LkkString) IsRsaPublicKey
  3021  
  3022  ```go
  3023  func (ks *LkkString) IsRsaPublicKey(str string, keylen uint16) bool
  3024  ```
  3025  IsRsaPublicKey 检查字符串是否RSA的公钥,keylen为密钥长度.
  3026  
  3027  #### func (*LkkString) IsSha1
  3028  
  3029  ```go
  3030  func (ks *LkkString) IsSha1(str string) bool
  3031  ```
  3032  IsSha1 是否Sha1值.
  3033  
  3034  #### func (*LkkString) IsSha256
  3035  
  3036  ```go
  3037  func (ks *LkkString) IsSha256(str string) bool
  3038  ```
  3039  IsSha256 是否Sha256值.
  3040  
  3041  #### func (*LkkString) IsSha512
  3042  
  3043  ```go
  3044  func (ks *LkkString) IsSha512(str string) bool
  3045  ```
  3046  IsSha512 是否Sha512值.
  3047  
  3048  #### func (*LkkString) IsTel
  3049  
  3050  ```go
  3051  func (ks *LkkString) IsTel(str string) bool
  3052  ```
  3053  IsTel 是否固定电话或400/800电话.
  3054  
  3055  #### func (*LkkString) IsUpper
  3056  
  3057  ```go
  3058  func (ks *LkkString) IsUpper(str string) bool
  3059  ```
  3060  IsUpper 字符串是否全部大写.
  3061  
  3062  #### func (*LkkString) IsUrl
  3063  
  3064  ```go
  3065  func (ks *LkkString) IsUrl(str string) bool
  3066  ```
  3067  IsUrl 检查字符串是否URL.
  3068  
  3069  #### func (*LkkString) IsUrlExists
  3070  
  3071  ```go
  3072  func (ks *LkkString) IsUrlExists(str string) bool
  3073  ```
  3074  IsUrlExists 检查URL是否存在.
  3075  
  3076  #### func (*LkkString) IsUtf8
  3077  
  3078  ```go
  3079  func (ks *LkkString) IsUtf8(s []byte) bool
  3080  ```
  3081  IsUtf8 字符串是否UTF-8编码.
  3082  
  3083  #### func (*LkkString) IsWhitespaces
  3084  
  3085  ```go
  3086  func (ks *LkkString) IsWhitespaces(str string) bool
  3087  ```
  3088  IsWhitespaces 是否全部空白字符,不包括空字符串.
  3089  
  3090  #### func (*LkkString) IsWord
  3091  
  3092  ```go
  3093  func (ks *LkkString) IsWord(str string) bool
  3094  ```
  3095  IsWord 是否词语(不以下划线开头的中文、英文、数字、下划线).
  3096  
  3097  #### func (*LkkString) JsonDecode
  3098  
  3099  ```go
  3100  func (ks *LkkString) JsonDecode(str []byte, res interface{}) error
  3101  ```
  3102  JsonDecode 对 JSON 格式的str字符串进行解码,注意res使用指针. 依赖库github.com/json-iterator/go.
  3103  
  3104  #### func (*LkkString) JsonEncode
  3105  
  3106  ```go
  3107  func (ks *LkkString) JsonEncode(val interface{}) ([]byte, error)
  3108  ```
  3109  JsonEncode 对val变量进行 JSON 编码. 依赖库github.com/json-iterator/go.
  3110  
  3111  #### func (*LkkString) Jsonp2Json
  3112  
  3113  ```go
  3114  func (ks *LkkString) Jsonp2Json(str string) (string, error)
  3115  ```
  3116  Jsonp2Json 将jsonp转为json串. Example: forbar({a:"1",b:2}) to {"a":"1","b":2}
  3117  
  3118  #### func (*LkkString) LastIndex
  3119  
  3120  ```go
  3121  func (ks *LkkString) LastIndex(str, sub string, ignoreCase bool) int
  3122  ```
  3123  LastIndex 查找子串sub在字符串str中最后一次出现的位置,不存在则返回-1; ignoreCase为是否忽略大小写.
  3124  
  3125  #### func (*LkkString) Lcfirst
  3126  
  3127  ```go
  3128  func (ks *LkkString) Lcfirst(str string) string
  3129  ```
  3130  Lcfirst 将字符串的第一个字符转换为小写.
  3131  
  3132  #### func (*LkkString) Lcwords
  3133  
  3134  ```go
  3135  func (ks *LkkString) Lcwords(str string) string
  3136  ```
  3137  Lcwords 将字符串中每个词的首字母转换为小写.
  3138  
  3139  #### func (*LkkString) Levenshtein
  3140  
  3141  ```go
  3142  func (ks *LkkString) Levenshtein(a, b string) int
  3143  ```
  3144  Levenshtein 计算两个字符串之间的编辑距离,返回值越小字符串越相似. 注意字符串最大长度为255.
  3145  
  3146  #### func (*LkkString) Ltrim
  3147  
  3148  ```go
  3149  func (ks *LkkString) Ltrim(str string, characterMask ...string) string
  3150  ```
  3151  Ltrim 删除字符串开头的空白字符(或其他字符). characterMask为要修剪的字符.
  3152  
  3153  #### func (*LkkString) MatchEquations
  3154  
  3155  ```go
  3156  func (ks *LkkString) MatchEquations(str string) (res []string)
  3157  ```
  3158  MatchEquations 匹配字符串中所有的等式.
  3159  
  3160  #### func (*LkkString) MbStrlen
  3161  
  3162  ```go
  3163  func (ks *LkkString) MbStrlen(str string) int
  3164  ```
  3165  MbStrlen 获取宽字符串的长度,多字节的字符被计为 1.
  3166  
  3167  #### func (*LkkString) MbSubstr
  3168  
  3169  ```go
  3170  func (ks *LkkString) MbSubstr(str string, start int, length ...int) string
  3171  ```
  3172  MbSubstr 返回(宽字符)字符串str的子串. start 为起始位置.若值是负数,返回的结果将从 str 结尾处向前数第 abs(start)
  3173  个字符开始. length 为截取的长度.若值时负数, str 末尾处的 abs(length) 个字符将会被省略.
  3174  start/length的绝对值必须<=原字符串长度.
  3175  
  3176  #### func (*LkkString) Md5
  3177  
  3178  ```go
  3179  func (ks *LkkString) Md5(str string, length ...uint8) string
  3180  ```
  3181  Md5 获取字符串md5值. length指定结果长度,默认32.
  3182  
  3183  #### func (*LkkString) Md5Byte
  3184  
  3185  ```go
  3186  func (ks *LkkString) Md5Byte(str []byte, length ...uint8) []byte
  3187  ```
  3188  Md5 获取字节切片md5值. length指定结果长度,默认32.
  3189  
  3190  #### func (*LkkString) Nl2br
  3191  
  3192  ```go
  3193  func (ks *LkkString) Nl2br(str string) string
  3194  ```
  3195  Nl2br 将换行符转换为br标签.
  3196  
  3197  #### func (*LkkString) Ord
  3198  
  3199  ```go
  3200  func (ks *LkkString) Ord(char string) rune
  3201  ```
  3202  Ord 将首字符转换为rune(ASCII值). 注意:当字符串为空时返回65533.
  3203  
  3204  #### func (*LkkString) ParseStr
  3205  
  3206  ```go
  3207  func (ks *LkkString) ParseStr(encodedString string, result map[string]interface{}) error
  3208  ```
  3209  ParseStr 将URI查询字符串转换为字典.
  3210  
  3211  #### func (*LkkString) ParseUrl
  3212  
  3213  ```go
  3214  func (ks *LkkString) ParseUrl(str string, component int16) (map[string]string, error)
  3215  ```
  3216  ParseUrl 解析URL,返回其组成部分. component为需要返回的组成; -1: all; 1: scheme; 2: host; 4: port;
  3217  8: user; 16: pass; 32: path; 64: query; 128: fragment .
  3218  
  3219  #### func (*LkkString) Quotemeta
  3220  
  3221  ```go
  3222  func (ks *LkkString) Quotemeta(str string) string
  3223  ```
  3224  Quotemeta 转义元字符集,包括 . \ + * ? [ ^ ] ( $ )等.
  3225  
  3226  #### func (*LkkString) Random
  3227  
  3228  ```go
  3229  func (ks *LkkString) Random(length uint8, rtype LkkRandString) string
  3230  ```
  3231  Random 生成随机字符串. length为长度,rtype为枚举: RAND_STRING_ALPHA 字母; RAND_STRING_NUMERIC
  3232  数值; RAND_STRING_ALPHANUM 字母+数值; RAND_STRING_SPECIAL 字母+数值+特殊字符;
  3233  RAND_STRING_CHINESE 仅中文.
  3234  
  3235  #### func (*LkkString) RawUrlDecode
  3236  
  3237  ```go
  3238  func (ks *LkkString) RawUrlDecode(str string) (string, error)
  3239  ```
  3240  RawUrlDecode 对已编码的 URL 字符串进行解码.
  3241  
  3242  #### func (*LkkString) RawUrlEncode
  3243  
  3244  ```go
  3245  func (ks *LkkString) RawUrlEncode(str string) string
  3246  ```
  3247  RawUrlEncode 按照 RFC 3986 对 URL 进行编码.
  3248  
  3249  #### func (*LkkString) RemoveAfter
  3250  
  3251  ```go
  3252  func (ks *LkkString) RemoveAfter(str, after string, include, ignoreCase bool) string
  3253  ```
  3254  RemoveAfter 移除after之后的字符串; include为是否移除包括after本身; ignoreCase为是否忽略大小写.
  3255  
  3256  #### func (*LkkString) RemoveBefore
  3257  
  3258  ```go
  3259  func (ks *LkkString) RemoveBefore(str, before string, include, ignoreCase bool) string
  3260  ```
  3261  RemoveBefore 移除before之前的字符串; include为是否移除包括before本身; ignoreCase为是否忽略大小写.
  3262  
  3263  #### func (*LkkString) RemoveEmoji
  3264  
  3265  ```go
  3266  func (ks *LkkString) RemoveEmoji(str string) string
  3267  ```
  3268  RemoveEmoji 移除字符串中的表情符(使用正则,效率较低).
  3269  
  3270  #### func (*LkkString) RemoveSpace
  3271  
  3272  ```go
  3273  func (ks *LkkString) RemoveSpace(str string, all bool) string
  3274  ```
  3275  RemoveSpace 移除字符串中的空白字符. all为true时移除全部空白,为false时只替换连续的空白字符为一个空格.
  3276  
  3277  #### func (*LkkString) Reverse
  3278  
  3279  ```go
  3280  func (ks *LkkString) Reverse(str string) string
  3281  ```
  3282  Reverse 反转字符串.
  3283  
  3284  #### func (*LkkString) Rtrim
  3285  
  3286  ```go
  3287  func (ks *LkkString) Rtrim(str string, characterMask ...string) string
  3288  ```
  3289  Rtrim 删除字符串末端的空白字符(或者其他字符). characterMask为要修剪的字符.
  3290  
  3291  #### func (*LkkString) SBC2DBC
  3292  
  3293  ```go
  3294  func (ks *LkkString) SBC2DBC(s string) string
  3295  ```
  3296  SBC2DBC 全角转半角.
  3297  
  3298  #### func (*LkkString) Serialize
  3299  
  3300  ```go
  3301  func (ks *LkkString) Serialize(val interface{}) ([]byte, error)
  3302  ```
  3303  Serialize 对变量进行序列化.
  3304  
  3305  #### func (*LkkString) ShaX
  3306  
  3307  ```go
  3308  func (ks *LkkString) ShaX(str string, x uint16) string
  3309  ```
  3310  ShaX 计算字符串的 shaX 散列值,x为1/256/512 .
  3311  
  3312  #### func (*LkkString) ShaXByte
  3313  
  3314  ```go
  3315  func (ks *LkkString) ShaXByte(str []byte, x uint16) []byte
  3316  ```
  3317  ShaXByte 计算字节切片的 shaX 散列值,x为1/256/512 .
  3318  
  3319  #### func (*LkkString) Shuffle
  3320  
  3321  ```go
  3322  func (ks *LkkString) Shuffle(str string) string
  3323  ```
  3324  Shuffle 随机打乱字符串.
  3325  
  3326  #### func (*LkkString) SimilarText
  3327  
  3328  ```go
  3329  func (ks *LkkString) SimilarText(first, second string) (res int, percent float64)
  3330  ```
  3331  SimilarText 计算两个字符串的相似度;返回在两个字符串中匹配字符的数目,以及相似程度百分数.
  3332  
  3333  #### func (*LkkString) StartsWith
  3334  
  3335  ```go
  3336  func (ks *LkkString) StartsWith(str, sub string, ignoreCase bool) bool
  3337  ```
  3338  StartsWith 字符串str是否以sub开头.
  3339  
  3340  #### func (*LkkString) StartsWiths
  3341  
  3342  ```go
  3343  func (ks *LkkString) StartsWiths(str string, subs []string, ignoreCase bool) (res bool)
  3344  ```
  3345  StartsWiths 字符串str是否以subs其中之一为开头.
  3346  
  3347  #### func (*LkkString) StripTags
  3348  
  3349  ```go
  3350  func (ks *LkkString) StripTags(str string) string
  3351  ```
  3352  StripTags 过滤html标签.
  3353  
  3354  #### func (*LkkString) Stripos
  3355  
  3356  ```go
  3357  func (ks *LkkString) Stripos(haystack, needle string, offset int) int
  3358  ```
  3359  Stripos 查找字符串首次出现的位置(不区分大小写),找不到时返回-1. haystack在该字符串中进行查找,needle要查找的字符串;
  3360  offset起始位置,为负数时时,搜索会从字符串结尾指定字符数开始.
  3361  
  3362  #### func (*LkkString) Stripslashes
  3363  
  3364  ```go
  3365  func (ks *LkkString) Stripslashes(str string) string
  3366  ```
  3367  Stripslashes 反引用一个引用字符串.
  3368  
  3369  #### func (*LkkString) Strlen
  3370  
  3371  ```go
  3372  func (ks *LkkString) Strlen(str string) int
  3373  ```
  3374  Strlen 获取字符串长度.
  3375  
  3376  #### func (*LkkString) Strpad
  3377  
  3378  ```go
  3379  func (ks *LkkString) Strpad(str string, fill string, max int, ptype LkkPadType) string
  3380  ```
  3381  Strpad 使用fill填充str字符串到指定长度max. ptype为填充类型,枚举值(PAD_LEFT,PAD_RIGHT,PAD_BOTH).
  3382  
  3383  #### func (*LkkString) StrpadBoth
  3384  
  3385  ```go
  3386  func (ks *LkkString) StrpadBoth(str string, fill string, max int) string
  3387  ```
  3388  StrpadBoth 字符串两侧填充,请参考Strpad.
  3389  
  3390  #### func (*LkkString) StrpadLeft
  3391  
  3392  ```go
  3393  func (ks *LkkString) StrpadLeft(str string, fill string, max int) string
  3394  ```
  3395  StrpadLeft 字符串左侧填充,请参考Strpad.
  3396  
  3397  #### func (*LkkString) StrpadRight
  3398  
  3399  ```go
  3400  func (ks *LkkString) StrpadRight(str string, fill string, max int) string
  3401  ```
  3402  StrpadRight 字符串右侧填充,请参考Strpad.
  3403  
  3404  #### func (*LkkString) Strpos
  3405  
  3406  ```go
  3407  func (ks *LkkString) Strpos(haystack, needle string, offset int) int
  3408  ```
  3409  Strpos 查找字符串首次出现的位置,找不到时返回-1. haystack在该字符串中进行查找,needle要查找的字符串;
  3410  offset起始位置,为负数时时,搜索会从字符串结尾指定字符数开始.
  3411  
  3412  #### func (*LkkString) Strripos
  3413  
  3414  ```go
  3415  func (ks *LkkString) Strripos(haystack, needle string, offset int) int
  3416  ```
  3417  Strripos 查找指定字符串在目标字符串中最后一次出现的位置(不区分大小写).
  3418  
  3419  #### func (*LkkString) Strrpos
  3420  
  3421  ```go
  3422  func (ks *LkkString) Strrpos(haystack, needle string, offset int) int
  3423  ```
  3424  Strrpos 查找指定字符串在目标字符串中最后一次出现的位置.
  3425  
  3426  #### func (*LkkString) Substr
  3427  
  3428  ```go
  3429  func (ks *LkkString) Substr(str string, start int, length ...int) string
  3430  ```
  3431  Substr 截取字符串str的子串. start 为起始位置.若值是负数,返回的结果将从 str 结尾处向前数第 abs(start) 个字符开始.
  3432  length 为截取的长度.若值时负数, str 末尾处的 abs(length) 个字符将会被省略. start/length的绝对值必须<=原字符串长度.
  3433  
  3434  #### func (*LkkString) SubstrCount
  3435  
  3436  ```go
  3437  func (ks *LkkString) SubstrCount(str, substr string) int
  3438  ```
  3439  SubstrCount 计算子串substr在字符串str中出现的次数,区分大小写.
  3440  
  3441  #### func (*LkkString) SubstriCount
  3442  
  3443  ```go
  3444  func (ks *LkkString) SubstriCount(str, substr string) int
  3445  ```
  3446  SubstriCount 计算子串substr在字符串str中出现的次数,忽略大小写.
  3447  
  3448  #### func (*LkkString) ToCamelCase
  3449  
  3450  ```go
  3451  func (ks *LkkString) ToCamelCase(str string) string
  3452  ```
  3453  ToCamelCase 转为驼峰写法. 去掉包括下划线"_"和横杠"-".
  3454  
  3455  #### func (*LkkString) ToKebabCase
  3456  
  3457  ```go
  3458  func (ks *LkkString) ToKebabCase(str string) string
  3459  ```
  3460  ToSnakeCase 转为串形写法. 使用横杠"-"连接.
  3461  
  3462  #### func (*LkkString) ToSnakeCase
  3463  
  3464  ```go
  3465  func (ks *LkkString) ToSnakeCase(str string) string
  3466  ```
  3467  ToSnakeCase 转为蛇形写法. 使用下划线"_"连接.
  3468  
  3469  #### func (*LkkString) Trim
  3470  
  3471  ```go
  3472  func (ks *LkkString) Trim(str string, characterMask ...string) string
  3473  ```
  3474  Trim 去除字符串首尾处的空白字符(或者其他字符). characterMask为要修剪的字符.
  3475  
  3476  #### func (*LkkString) TrimBOM
  3477  
  3478  ```go
  3479  func (ks *LkkString) TrimBOM(str []byte) []byte
  3480  ```
  3481  TrimBOM 移除字符串中的BOM
  3482  
  3483  #### func (*LkkString) Ucfirst
  3484  
  3485  ```go
  3486  func (ks *LkkString) Ucfirst(str string) string
  3487  ```
  3488  Ucfirst 将字符串的第一个字符转换为大写.
  3489  
  3490  #### func (*LkkString) Ucwords
  3491  
  3492  ```go
  3493  func (ks *LkkString) Ucwords(str string) string
  3494  ```
  3495  Ucwords 将字符串中每个词的首字母转换为大写.
  3496  
  3497  #### func (*LkkString) UnSerialize
  3498  
  3499  ```go
  3500  func (ks *LkkString) UnSerialize(data []byte, register ...interface{}) (val interface{}, err error)
  3501  ```
  3502  UnSerialize 对字符串进行反序列化. 其中register注册对象,其类型必须和Serialize的一致.
  3503  
  3504  #### func (*LkkString) Uniqid
  3505  
  3506  ```go
  3507  func (ks *LkkString) Uniqid(prefix string) string
  3508  ```
  3509  Uniqid 获取一个带前缀的唯一ID(24位). prefix 为前缀字符串.
  3510  
  3511  #### func (*LkkString) UrlDecode
  3512  
  3513  ```go
  3514  func (ks *LkkString) UrlDecode(str string) (string, error)
  3515  ```
  3516  UrlDecode 解码已编码的 URL 字符串.
  3517  
  3518  #### func (*LkkString) UrlEncode
  3519  
  3520  ```go
  3521  func (ks *LkkString) UrlEncode(str string) string
  3522  ```
  3523  UrlEncode 编码 URL 字符串.
  3524  
  3525  #### func (*LkkString) Utf8ToBig5
  3526  
  3527  ```go
  3528  func (ks *LkkString) Utf8ToBig5(s []byte) ([]byte, error)
  3529  ```
  3530  Utf8ToBig5 UTF-8转BIG5编码.
  3531  
  3532  #### func (*LkkString) Utf8ToGbk
  3533  
  3534  ```go
  3535  func (ks *LkkString) Utf8ToGbk(s []byte) ([]byte, error)
  3536  ```
  3537  Utf8ToGbk UTF-8转GBK编码.
  3538  
  3539  #### func (*LkkString) UuidV4
  3540  
  3541  ```go
  3542  func (ks *LkkString) UuidV4() (string, error)
  3543  ```
  3544  UuidV4 获取36位UUID(Version4).
  3545  
  3546  #### func (*LkkString) VersionCompare
  3547  
  3548  ```go
  3549  func (ks *LkkString) VersionCompare(version1, version2, operator string) (bool, error)
  3550  ```
  3551  VersionCompare 对比两个版本号字符串. operator允许的操作符有: <, lt, <=, le, >, gt, >=, ge, ==, =,
  3552  eq, !=, <>, ne . 特定的版本字符串,将会用以下顺序处理: 无 < dev < alpha = a < beta = b < RC = rc <
  3553  # < pl = p < ga < release = r 用法: VersionCompare("1.2.3-alpha", "1.2.3RC7",
  3554  '>=') ; VersionCompare("1.2.3-beta", "1.2.3pl", 'lt') ;
  3555  VersionCompare("1.1_dev", "1.2any", 'eq') .
  3556  
  3557  #### type LkkTime
  3558  
  3559  ```go
  3560  type LkkTime struct {
  3561  }
  3562  ```
  3563  
  3564  LkkTime is the receiver of time utilities
  3565  
  3566  #### func (*LkkTime) CheckDate
  3567  
  3568  ```go
  3569  func (kt *LkkTime) CheckDate(year, month, day int) bool
  3570  ```
  3571  CheckDate 检查是否正常的日期.
  3572  
  3573  #### func (*LkkTime) Date
  3574  
  3575  ```go
  3576  func (kt *LkkTime) Date(format string, ts ...interface{}) string
  3577  ```
  3578  Date 格式化时间. format 格式,如"Y-m-d H:i:s". ts为int/int64类型时间戳或time.Time类型.
  3579  
  3580  #### func (*LkkTime) Day
  3581  
  3582  ```go
  3583  func (kt *LkkTime) Day(t ...time.Time) int
  3584  ```
  3585  Day 获取日份.
  3586  
  3587  #### func (*LkkTime) DaysBetween
  3588  
  3589  ```go
  3590  func (kt *LkkTime) DaysBetween(fromDate, toDate time.Time) int
  3591  ```
  3592  DaysBetween 获取两个日期的间隔天数. fromDate 为开始时间,toDate 为终点时间.
  3593  
  3594  #### func (*LkkTime) EndOfDay
  3595  
  3596  ```go
  3597  func (kt *LkkTime) EndOfDay(date time.Time) time.Time
  3598  ```
  3599  EndOfDay 获取日期中当天的结束时间.
  3600  
  3601  #### func (*LkkTime) EndOfMonth
  3602  
  3603  ```go
  3604  func (kt *LkkTime) EndOfMonth(date time.Time) time.Time
  3605  ```
  3606  EndOfMonth 获取日期中当月的结束时间.
  3607  
  3608  #### func (*LkkTime) EndOfWeek
  3609  
  3610  ```go
  3611  func (kt *LkkTime) EndOfWeek(date time.Time, weekStartDay ...time.Weekday) time.Time
  3612  ```
  3613  EndOfWeek 获取日期中当周的结束时间; weekStartDay 周几作为周的第一天,本库默认周一.
  3614  
  3615  #### func (*LkkTime) EndOfYear
  3616  
  3617  ```go
  3618  func (kt *LkkTime) EndOfYear(date time.Time) time.Time
  3619  ```
  3620  EndOfYear 获取日期中当年的结束时间.
  3621  
  3622  #### func (*LkkTime) GetMonthDays
  3623  
  3624  ```go
  3625  func (kt *LkkTime) GetMonthDays(month int, year ...int) (days int)
  3626  ```
  3627  GetMonthDays 获取指定月份的天数.year年份,可选,默认当前年份.
  3628  
  3629  #### func (*LkkTime) Hour
  3630  
  3631  ```go
  3632  func (kt *LkkTime) Hour(t ...time.Time) int
  3633  ```
  3634  Hour 获取小时.
  3635  
  3636  #### func (*LkkTime) IsDate2time
  3637  
  3638  ```go
  3639  func (kt *LkkTime) IsDate2time(str string) (bool, int64)
  3640  ```
  3641  IsDate2time 检查字符串是否日期格式,并转换为时间戳.注意,时间戳可能为负数(小于1970年时). 匹配如:
  3642  
  3643      0000
  3644      0000-00
  3645      0000/00
  3646      0000-00-00
  3647      0000/00/00
  3648      0000-00-00 00
  3649      0000/00/00 00
  3650      0000-00-00 00:00
  3651      0000/00/00 00:00
  3652      0000-00-00 00:00:00
  3653      0000/00/00 00:00:00
  3654  
  3655  等日期格式.
  3656  
  3657  #### func (*LkkTime) MicroTime
  3658  
  3659  ```go
  3660  func (kt *LkkTime) MicroTime() int64
  3661  ```
  3662  MicroTime 获取当前Unix时间戳(微秒,16位).
  3663  
  3664  #### func (*LkkTime) MilliTime
  3665  
  3666  ```go
  3667  func (kt *LkkTime) MilliTime() int64
  3668  ```
  3669  MilliTime 获取当前Unix时间戳(毫秒,13位).
  3670  
  3671  #### func (*LkkTime) Minute
  3672  
  3673  ```go
  3674  func (kt *LkkTime) Minute(t ...time.Time) int
  3675  ```
  3676  Minute 获取分钟.
  3677  
  3678  #### func (*LkkTime) Month
  3679  
  3680  ```go
  3681  func (kt *LkkTime) Month(t ...time.Time) int
  3682  ```
  3683  Month 获取月份.
  3684  
  3685  #### func (*LkkTime) Second
  3686  
  3687  ```go
  3688  func (kt *LkkTime) Second(t ...time.Time) int
  3689  ```
  3690  Second 获取秒数.
  3691  
  3692  #### func (*LkkTime) ServiceStartime
  3693  
  3694  ```go
  3695  func (kt *LkkTime) ServiceStartime() int64
  3696  ```
  3697  ServiceStartime 获取当前服务启动时间戳,秒.
  3698  
  3699  #### func (*LkkTime) ServiceUptime
  3700  
  3701  ```go
  3702  func (kt *LkkTime) ServiceUptime() time.Duration
  3703  ```
  3704  ServiceUptime 获取当前服务运行时间,纳秒int64.
  3705  
  3706  #### func (*LkkTime) Sleep
  3707  
  3708  ```go
  3709  func (kt *LkkTime) Sleep(t int64)
  3710  ```
  3711  Sleep 延缓执行,秒.
  3712  
  3713  #### func (*LkkTime) StartOfDay
  3714  
  3715  ```go
  3716  func (kt *LkkTime) StartOfDay(date time.Time) time.Time
  3717  ```
  3718  StartOfDay 获取日期中当天的开始时间.
  3719  
  3720  #### func (*LkkTime) StartOfMonth
  3721  
  3722  ```go
  3723  func (kt *LkkTime) StartOfMonth(date time.Time) time.Time
  3724  ```
  3725  StartOfMonth 获取日期中当月的开始时间.
  3726  
  3727  #### func (*LkkTime) StartOfWeek
  3728  
  3729  ```go
  3730  func (kt *LkkTime) StartOfWeek(date time.Time, weekStartDay ...time.Weekday) time.Time
  3731  ```
  3732  StartOfWeek 获取日期中当周的开始时间; weekStartDay 周几作为周的第一天,本库默认周一.
  3733  
  3734  #### func (*LkkTime) StartOfYear
  3735  
  3736  ```go
  3737  func (kt *LkkTime) StartOfYear(date time.Time) time.Time
  3738  ```
  3739  StartOfYear 获取日期中当年的开始时间.
  3740  
  3741  #### func (*LkkTime) Str2Timestamp
  3742  
  3743  ```go
  3744  func (kt *LkkTime) Str2Timestamp(str string, format ...string) (int64, error)
  3745  ```
  3746  Str2Timestamp 将字符串转换为时间戳,秒. str 为要转换的字符串; format 为该字符串的格式,默认为"2006-01-02
  3747  15:04:05" .
  3748  
  3749  #### func (*LkkTime) Str2Timestruct
  3750  
  3751  ```go
  3752  func (kt *LkkTime) Str2Timestruct(str string, format ...string) (time.Time, error)
  3753  ```
  3754  Str2Time 将字符串转换为时间结构. str 为要转换的字符串; format 为该字符串的格式,默认为"2006-01-02 15:04:05" .
  3755  
  3756  #### func (*LkkTime) UnixTime
  3757  
  3758  ```go
  3759  func (kt *LkkTime) UnixTime() int64
  3760  ```
  3761  Time 获取当前Unix时间戳(秒,10位).
  3762  
  3763  #### func (*LkkTime) Usleep
  3764  
  3765  ```go
  3766  func (kt *LkkTime) Usleep(t int64)
  3767  ```
  3768  Usleep 以指定的微秒数延迟执行.
  3769  
  3770  #### func (*LkkTime) Year
  3771  
  3772  ```go
  3773  func (kt *LkkTime) Year(t ...time.Time) int
  3774  ```
  3775  Year 获取年份.
  3776  
  3777  #### type SystemInfo
  3778  
  3779  ```go
  3780  type SystemInfo struct {
  3781  	ServerName   string  `json:"server_name"`    //服务器名称
  3782  	SystemOs     string  `json:"system_os"`      //操作系统名称
  3783  	Runtime      uint64  `json:"run_time"`       //服务运行时间,纳秒
  3784  	Uptime       uint64  `json:"up_time"`        //操作系统运行时间,秒
  3785  	GoroutineNum int     `json:"goroutine_num"`  //goroutine数量
  3786  	CpuNum       int     `json:"cpu_num"`        //cpu核数
  3787  	CpuUser      float64 `json:"cpu_user"`       //cpu用户态比率
  3788  	CpuFree      float64 `json:"cpu_free"`       //cpu空闲比率
  3789  	DiskUsed     uint64  `json:"disk_used"`      //已用磁盘空间,字节数
  3790  	DiskFree     uint64  `json:"disk_free"`      //可用磁盘空间,字节数
  3791  	DiskTotal    uint64  `json:"disk_total"`     //总磁盘空间,字节数
  3792  	MemUsed      uint64  `json:"mem_used"`       //已用内存,字节数
  3793  	MemSys       uint64  `json:"mem_sys"`        //系统内存占用量,字节数
  3794  	MemFree      uint64  `json:"mem_free"`       //剩余内存,字节数
  3795  	MemTotal     uint64  `json:"mem_total"`      //总内存,字节数
  3796  	AllocGolang  uint64  `json:"alloc_golang"`   //golang内存使用量,字节数
  3797  	AllocTotal   uint64  `json:"alloc_total"`    //总分配的内存,字节数
  3798  	Lookups      uint64  `json:"lookups"`        //指针查找次数
  3799  	Mallocs      uint64  `json:"mallocs"`        //内存分配次数
  3800  	Frees        uint64  `json:"frees"`          //内存释放次数
  3801  	LastGCTime   uint64  `json:"last_gc_time"`   //上次GC时间,纳秒
  3802  	NextGC       uint64  `json:"next_gc"`        //下次GC内存回收量,字节数
  3803  	PauseTotalNs uint64  `json:"pause_total_ns"` //GC暂停时间总量,纳秒
  3804  	PauseNs      uint64  `json:"pause_ns"`       //上次GC暂停时间,纳秒
  3805  }
  3806  ```
  3807  
  3808  SystemInfo 系统信息
  3809  
  3810  #### type Win32_Process
  3811  
  3812  ```go
  3813  type Win32_Process struct {
  3814  	Name                  string
  3815  	ExecutablePath        *string
  3816  	CommandLine           *string
  3817  	Priority              uint32
  3818  	CreationDate          *time.Time
  3819  	ProcessId             uint32
  3820  	ThreadCount           uint32
  3821  	Status                *string
  3822  	ReadOperationCount    uint64
  3823  	ReadTransferCount     uint64
  3824  	WriteOperationCount   uint64
  3825  	WriteTransferCount    uint64
  3826  	CSCreationClassName   string
  3827  	CSName                string
  3828  	Caption               *string
  3829  	CreationClassName     string
  3830  	Description           *string
  3831  	ExecutionState        *uint16
  3832  	HandleCount           uint32
  3833  	KernelModeTime        uint64
  3834  	MaximumWorkingSetSize *uint32
  3835  	MinimumWorkingSetSize *uint32
  3836  	OSCreationClassName   string
  3837  	OSName                string
  3838  	OtherOperationCount   uint64
  3839  	OtherTransferCount    uint64
  3840  	PageFaults            uint32
  3841  	PageFileUsage         uint32
  3842  	ParentProcessID       uint32
  3843  	PeakPageFileUsage     uint32
  3844  	PeakVirtualSize       uint64
  3845  	PeakWorkingSetSize    uint32
  3846  	PrivatePageCount      uint64
  3847  	TerminationDate       *time.Time
  3848  	UserModeTime          uint64
  3849  	WorkingSetSize        uint64
  3850  }
  3851  ```