字符串
声明
声明一个字符串有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
该地址不可访问时, 会直接抛出异常