分享时间 | 2024-06-29 20:12 |
最后更新 | 10天16小时前 |
修订版本 | 8 |
用户许可 | -未设置- |
Quicker版本 | 1.43.47 |
动作大小 | 143.8 KB |
支持的计算模块:
通过JavaScript模块实现,表达式参照JavaScript语法(Quicker版本1.43.6及之前仅支持ES5,Quicker版本1.43.7及之后支持ES6语法)。
补充定义了部分常用常数、函数和类方法,包括
pi=π=Math.PI
、ℯ=Math.E
sin=Math.sin
、cos=Math.cos
、tan=Math.tan
、asin=Math.asin
、acos=Math.acos
、atan=Math.atan
、sqrt=Math.sqrt
、max=Math.max
、min=Math.min
、round=Math.round
、trunc=Math.trunc
、log=Math.log
,以及简写/别名:int=Math.trunc
、ln=Math.log
、lg=Math.log10
log_(a)(x)
:以a为底的对数(即logₐx),如log_(2)(8)
==3
rt_(n)(x)=root_(n)(x)
:以x的n次根(即ⁿ√x),如rt_(10)(1024)
==2
sum()
:多参数求和函数,如sum(1,2,3)
==6
mean()
:多参数平均值函数,如mean(1,2,3)
==2
range(start, stop, step)
:定步长序列,类似python
的range
range(start, stop, step)
,如:range(1,10,2)
==[1,3,5,7,9]
range(start, stop)
=range(start, stop, step=1)
,如:range(5,10)
==[5,6,7,8,9]
range(stop)
=range(start=0, stop, step=1)
,如:range(5)
==[0,1,2,3,4]
seq(start, stop, length)
:定长序列range(start, stop, length)
,如:seq(100,200,5)
==[100,125,150,175,200]
range(stop, length)
=range(star0, stop, length)
,如:seq(10,5)
==[0,2.5,5,7.5,10]
range(length)
=range(start=0, stop=1, length)
,如:seq(5)
==[0,0.25,0.5,0.75,1]
rep(x, n)
:重复,类似R
的rep
rep(x, n)
,如:rep(1,10)
==[1,1,1,1,1,1,1,1,1,1]
rep([x], [n])
,如:rep([9,8,7],[3,2,1])
==[9,9,9,8,8,7]
string.reverse()
字符串倒序,如"abc".reverse()
=="cba"
string.toMD5()
MD5散列,如"abc".toMD5()
=="900150983cd24fb0d6963f7d28e17f72"
string.toSHA256()
SHA256散列,如"abc".toSHA256()
=="ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
atob
,或string.toBase64()
Base64编码,如atob("abc")
=="abc".toBase64()
=="YWJj"
btoa=String.fromBase64
Base64编码,如String.fromBase64("YWJj")
=="abc"
sprintf(fmt, values)
:C风格字符串格式化,如sprintf("h%cllo w%sld", 101, "or")
=="hello world"
format(value, fmt)
:python风格字符串格式化,如format(1110, "#x")
=="0x456"
array.chunkBy(chunkSize=1)
列表分块,指定块大小,如[1,2,3,4,5,6].chunkBy(2)
==[[1,2],[3,4],[5,6]]
array.chunkTo(chunkNum=1)
列表分块,指定块数量,如[1,2,3,4,5,6].chunkTo(2)
==[[1,2,3],[4,5,6]]
array.T()
(二维)列表转置,如[[1,2,3],[4,5,6]].T()
==[[1,4],[2,5],[3,6]]
fs
和path
(类似nodejs
模块fs
和path
):ls=fs.readdirSync=System.IO.Directory.GetFileSystemEntries
列出目录下所有文件和文件夹read=fs.readFileSync=System.IO.File.ReadAllText
读取文件中的全部文本为字符串readlines=System.IO.File.ReadAllLines
读取文件中的全部文本为字符串列表(按行分割)path.basename(path, suffix)
获取文件名并移除指定后缀path.dirname=System.IO.Path.GetDirectoryName
获取文件所在路径名path.extname=System.IO.Path.GetExtension
获取文件后缀名path.join=System.IO.Path.Combine
合并路径path.sep=System.IO.Path.DirectorySeparatorChar
目录分隔符path.delimiter=System.IO.Path.PathSeparator
路径分隔符path.isAbsolute=System.IO.Path.IsPathRooted
路径是否为绝对路径path.posix
上述函数的UNIX风格版本as
:as.numeric
:将列表的所有元素转换为数值,或者将多个逗号分隔的数字合并为一个数字(可以用于拼接千分符分隔的数字,如as.numeric(1,234,567.89)
==1234567.89
)
as.characters
:将列表内的所有元素转换为字符串cliptext
sci.c=sci.光速=299792458
sci.tK=sci.绝对零度=273.15
sci.atm=sci.大气压=101325
sci.G=sci.引力常数=6.67384e-11
sci.N_A=sci.阿伏伽德罗常数=6.02214076e23
sci.e=sci.元电荷=1.602176634e-19
sci.h=sci.普朗克常数=6.62607015e-34
sci.R=sci.气体常数=8.3144621
sci.k=sci.玻尔兹曼常数=1.380649e-23
sci.μ_0=sci.真空磁导率=4e-7 * π
sci.ε_0=sci.真空介电常数=1 / (36e9 * π)
sci.m_e=sci.电子质量=9.10938356e-31
sci.m_p=sci.质子质量=1.6726219e-27
sci.m_n=sci.中子质量=1.674927471e-27
sci.V_m=sci.摩尔体积=22.414
KB = 1024
MB = 1024 ** 2
GB = 1024 ** 3
TB = 1024 ** 4
s = second = 秒 = 1
m = minute = 分 = 60
h = hour = 时 = 60 * 60
D = day = 天 = 24 * 60 * 60
month = 月 = 30 * 24 * 60 * 60
year = 年 = 365 * 24 * 60 * 60
$
$(2024,4,18,8,20,33)
(2024年4月18日8时20分33秒)$()
)则为当前时间$(2024,4,18,8,20)-$(2024,4,17,18,45)
==48900
$U
:与$
相似,但为UTC时间$$
,如:$$(4800*分)
==3天8小时0分0秒
$$($(2024,4,18,8,20)-$(2024,4,17,18,45))
==13小时35分0秒
$c
、rgb
/rgba
、hsl
/hsla
、hsv
/hsva
$c
接受十六进制颜色值,如:$c("#ff8800")
rgb(a)
接受红、绿、蓝、透明度四个参数hsl(a)
接受色相、饱和度、明度、透明度四个参数hsv(a)
接受色相、饱和度、色值、透明度四个参数输出结果会进行简单的格式转换,包括:
元素区分大小写
数字均代表分子量下标,支持括号,如:CuSO4(H2O)5
==249.6846
支持物理量(带单位的数字)运算,会自动保留有效数字
支持换算的单位包括:
km
(千米)、m
(米)、cm
(厘米)、mm
(毫米)、μm
(微米)、nm
(纳米)
t
(吨)、kg
(千克)、g
(克)h
/hr
(小时)、min
(分钟)、s
(秒)A
(安培)、mA
(毫安)、μA
(微安)K
(开尔文)mol
(摩尔)、mmol
(毫摩尔)、μmol
(微摩尔)cd
(坎德拉)N
(牛顿)Hz
(赫兹)Pa
(帕斯卡)、kPa
(千帕)J
(焦耳)、kJ
(千焦)、eV
(电子伏特)W
(瓦特)、kW
(千瓦)、MW
(兆瓦)C
(库伦)V
(伏特)、kV
(千伏)F
(法拉)、μF
(微法)、nF
(纳法)Ω
(欧姆)、kΩ
(千欧)、MΩ
(兆欧)Wb
(韦伯)T
(特斯拉)H
(亨利)、mH
(毫亨)、μH
(微亨)lm
(流明)lx
(勒克斯)Bq
(贝可勒尔)Gy
(戈瑞)Sv
(西弗)L
(升)、mL
(毫升)、μL
(微升)M
(摩尔/升)小数点(.
)结尾的数字表示准确数字(无限位有效数字)
以@
结尾可以指定单位,多余的单位会保留在前面,如5.00V*2.00A*5.min@kW*h
==8.33×10⁻⁴kW·h
,1J@V
==1s·A·V
修订版本 | 更新时间 | 更新说明 |
---|---|---|
8 | 10天16小时前 |
添加辅助哈希函数toMD5和toSHA256
修复超长字符串可能引起卡死的问题 |
7 | 2024-10-31 00:20 | +增加序列函数range, seq和rep |
6 | 2024-09-18 17:55 | 增加python和C字符串格式化函数format和sprintf |