字符串

声明

声明一个字符串有3种方式: |符号|特殊说明|示例| |:-:|:-:|:-:| |单引号'|单引号内的字符数不能为1, 不能换行|" 或 'Hello World'| |双引号"|不能换行|"Hello"| |反引号(飘号)`|可以换行,可以使用${}拼接变量或表达式|name=`World`;print(`Hello ${name}`)

示例

// 单引号内只有一个字符时, 会声明为rune(int32)类型而不是string类型 print(type('a'), 'a') // 输出 int32, a print(type('aa'), 'aa') // 输出 string, aa // 反引号`很适合多行或需要拼接变量的情况 print( `这是第一行 这是第二行 这是第三行` ) name = 'zwr' age = 26 print(`姓名: ${name} 去年${age-1}岁`)

内置对象

|名称|描述|示例| |:-:|:-:|:-:| len/length|获取字节个数|"你好".len // 6 rlen/slen/strlen|获取字符个数|"你好".strlen // 2 bytes|获取字节数组|"你".bytes // 输出byte数组的base64 runes/chars|获取字符数组|"你".chars// [20320] i/int|转换成整型|"10".i + 3 // 13 f/float|转换成浮点型|"3.14".f / 2 // 1.57

内置函数

|名称|描述|示例| |:-:|:-:|:-:| find|查找,可正则|'2019年12月19号'.find(`\d{1,}`) // ["2019","12","19"] findall|正则查找匹配详情|'2019年12月19号'.findall(`(\d{1,})(.)`) // [["2019年","2019","年"],["12月","12","月"],["19号","19","号"]] contains|包含,可正则(第二个参数true为开启正则)|"abc".contains("bc");"abc1".contains(`\d`, true) test|检查字符串是否符合正则,传入空值返回false|"aaa".test(`\w\w\w`) split|分割,可正则|"a1b2c3d".split(`\d`) indexOf|从左往右寻找字符,未找到时返回-1|"abc".indexOf("b") lastIndexOf|从右往左寻找字符|"abc".indexOf("b") trim|去掉头尾的空白符|" abc ".trim() toLowerCase|转成小写|"ABC".toLowerCase() toUpperCase|转成大写|"abc".toUpperCase() substring|截取其中一部分字符串|"abc".substring(1,2) charCodeAt|获取某一位的rune值|"你好".charCodeAt(1) startsWith|是否以一个字符串开头|"abc".startsWith("a") endsWith|是否以一个字符串结尾|"abc".endsWith("a") replace|替换,可正则|"a1b22c".replace(`\d`,'xxx') join|将一个数组拼接起来|" - ".join('你','好','啊') fmt|作为模版输出字符串|"year:%04d rate:%.2f".fmt(18, 3.1415) repeat|重复多次|"nihao".repeat(3) hashCode|获得和Java相同的哈希值|"hi".hashCode() get|对该地址发起HTTP get请求|"http://baidu.com".get() post|对该地址发起HTTP post请求|"http://baidu.com".post("a=b") download|将该地址下载至本地|"http://baidu.com".download("baidu.html") read|读取文件内容|"baidu.html".read() write|写入文件内容|"baidu.html".write("haha") mkdir|创建文件夹|"testdir".mkdir() url|将其解析成*url.URL对象|"http://baidu.com".url().Host form|将其解析成form表单键值(s)对|"a=b&c=d&c=e".form().Get("a") urlEncode|进行url转义|"曾威人".urlEncode() urlDecode|进行url逆转义|"%E6%9B%BE%E5%A8%81%E4%BA%BA".urlDecode()

get函数

当字符串是你需要请求的网址时, 可以通过.get()函数来对该地址发起HTTP get请求 参数(可空)为header, 例如 "http://xxx".get({Cookie: 'some cookie value'}) 返回值为bytearray类型的请求结果, 可以.s转成字符串类型以便阅读, 也可以.m转成map或数组类型方便下一步操作 该地址不可访问时, 会直接抛出异常

post函数

当字符串是你需要请求的网址时, 可以通过.post()函数来对该地址发起HTTP get请求 第一个参数(可空)为请求体, 例如 // json格式 "http://xxx".post({k: v}) // form表单格式 "http://xxx".post("k1=v1&k2=v2") 第二个参数(可空)为请求header, 例如 "http://xxx".post({ k: v }, { Cookie: 'some cookie value', 'User-Agent': 'test', 'Content-Type': 'application/json', }) 返回值为bytearray类型的请求结果, 可以.s转成字符串类型以便阅读, 也可以.m转成map或数组类型方便下一步操作 该地址不可访问时, 会直接抛出异常

download函数

当字符串是一个可访问的地址时, 可以通过.download(本地文件路径)函数来对该地址发起HTTP get请求后下载到本地文件 第一个参数为保存到的本地文件地址, 例如 // json格式 "http://xxx".download("test.html") 第二个参数(可空)为请求header(自版本v1.0.0_20200819版本支持), 例如 "http://xxx".download("test.html", { Cookie: 'some cookie value', 'User-Agent': 'test', Referer: 'xxx', }) 返回值为下载文件的大小, 如果文件已经存在, 不会触发下载而是直接返回0 该地址不可访问时, 会直接抛出异常