函数

函数是执行特定任务的预定义公式。函数通常“接收”一些数据作为输入,对齐进行处理,然后“得出”结果。

常见的任务示例:

  • 计算文本中包含的字符数
  • 在文本中搜索特定文本
  • 判断两个数值中最小的值

函数通常具有以下结构:

  • function(argument: TYPE) → 结果值: TYPE
  • function(argument1: TYPE, argument2: TYPE) → 结果值: TYPE
  • function(argument1: TYPE, argument2: TYPE, argument3: TYPE) → 结果值: TYPE

函数通常采用一个或多个数据作为输入值。输入值和结果值使用文本、数字或颜色等特定类型的值。

文本

  • concat(source1: TEXT, source2: TEXT)TEXT

    将两个文本内容合并

    • concat("hello", "world")"helloworld"
  • indexOf(source: TEXT, searchValue: TEXT)NUMBER

    在文本中找到特定单词开始的位置。如果没有找到指定内容则输入值为-1。

    • indexOf("hello world", "world")6
    • indexOf("hello world", "hello")0
    • indexOf("hello world", "goodbye")-1
    • 查看实际案例 ,在邮件认证原型中使用indexOf函数。
  • length(source: TEXT)NUMBER

    求文本长度

    • length("hello")5
    • length("helloworld")10
    • length("hello world")11
    • 查看实际案例 ,在密码验证原型中使用length函数。
  • lowerCase(source: TEXT)TEXT

    将大写字母的文本转换成小写的文本

    • lowerCase("Hello")"hello"
  • upperCase(source: TEXT)TEXT

    将小写字母的文本转换成大写的文本

    • upperCase("Hello")"HELLO"
  • left(source: TEXT, count: NUMBER)TEXT

    从文本左侧开始,输出想要数字的前几个字符。

    • left("hello", 3)"hel"
  • lpad(source: TEXT, length: NUMBER, pad: TEXT)TEXT

    在输入的文本左侧进行填充以达到期望的长度

    • lpad("5", 2, "0")"05"
    • lpad("5", 4, "0")"0005"
  • rpad(source: TEXT, length: NUMBER, pad: TEXT)TEXT

    在输入的文本右侧进行填充以达到期望的长度

    • rpad("5", 2, "1")"51"
    • rpad("5", 6, "1")"511111"
  • repeat(source: TEXT, count: NUMBER)TEXT

    对指定文本以指定次数进行重复输入操作

    • repeat("hello", 2)"hellohello"
    • repeat("hello", 3)"hellohellohello"
  • replace(source: TEXT, from: TEXT, to: TEXT)TEXT

    将文本中指定部分替换成其他的内容

    • replace("helloworld", "world", "protopie")"helloprotopie"
    • replace("goodbye, John", "goodbye", "thank you")"thank you, John"
  • trim(source: TEXT)TEXT

    去除文本两边的空白

    • trim(" helloworld ")"helloworld"
    • trim(" helloworld ")"helloworld"
  • ltrim(source: TEXT)TEXT

    去除文本左侧的空白

    • ltrim(" helloworld ")"helloworld "
  • rtrim(source: TEXT)TEXT

    去除文本右侧的空白

    • rtrim(" helloworld ")" helloworld"

数学

  • pow(source: NUMBER, exponent: NUMBER)NUMBER

    取number1的number2阶乘值

    • pow(2, 3)8
  • sqrt(source: NUMBER)NUMBER

    取平方根,如果数字是负数则显示锗误。

    • sqrt(9)3
    • sqrt(2)1.41
  • min(source1: NUMBER, source2: NUMBER)NUMBER

    取多个数字中的最小值

    • min(0, 1)0
  • max(source1: NUMBER, source2: NUMBER)NUMBER

    取多个数字中的最大值

    • max(0, 1)1
  • abs(value: NUMBER)NUMBER

    取数字的绝对值,也用于删除负数前面的负号。

    • abs(-1)1
    • abs(5 - 25)20
  • sign(value: NUMBER)NUMBER

    判断输入的数字是正数还是负数。正数返回1,负数返回-1,值为0时返回0。

    • sign(5)1
    • sign(-10)-1
    • sign(0)0
  • round(source: NUMBER)NUMBER

    四舍五入的整数值

    • round(3.49)3
    • round(1.5)2
    • round(6.79)7
  • floor(source: NUMBER)NUMBER

    去掉小数点后的整数

    • floor(1.5)1
    • floor(2.99)2
  • ceil(source: NUMBER)NUMBER

    去掉小数点后整数进1

    • ceil(1.5)2
    • ceil(4.3)5
  • random()NUMBER

    在0和1中随机取得一个数字

    • random()在0和1中随机取得一个数字
  • random(min: NUMBER, max: NUMBER)NUMBER

    在指定区间内随机取得一个数字

    • random(1, 5)随机取1到5之间的一个数字
  • randomInt(min: NUMBER, max: NUMBER)NUMBER

    在指定区间内随机取得一个整数

    • randomInt(1, 5)随机取1到5之间的一个整数
  • radians(degrees: NUMBER)NUMBER

    将角度值转换为弧度值

    • radians(180)3.14 = π
    • radians(90)1.57 = π / 2
  • degrees(radians: NUMBER)NUMBER

    将弧度值转换为角度值

    • degrees($pi)180
    • degrees($pi / 2)90
  • sin(radian: NUMBER)NUMBER

    取弧度的sin值

    • sin($pi / 2)1
    • sin($pi / 6)0.5
  • cos(radian: NUMBER)NUMBER

    取弧度的cos值

    • cos(0)1
    • cos($pi / 2)0
  • tan(radian: NUMBER)NUMBER

    取弧度的tan值

    • tan($pi / 4)1
    • tan(0)0
  • asin(x: NUMBER)NUMBER

    计算x的反正弦值

    • asin(1)1.57 = π / 2
    • asin(0.5)0.52 = π / 6
  • acos(x: NUMBER)NUMBER

    计算x的反余弦值

    • acos(1)0
    • acos(0)1.57 = π / 2
  • atan(x: NUMBER)NUMBER

    计算x的反正切值

    • atan(1)0.79 = π / 4
    • atan(0)0
  • atan2(x: NUMBER, y: NUMBER)NUMBER

    计算x和y的反正切值

    • atan2(1, 0)1.57 = π / 2
    • atan2(1, 1)0.79 = π / 4

颜色

  • color(red: NUMBER, green: NUMBER, blue: NUMBER)COLOR

    将RGB的色值转化为FFFFFF

    • color(255, 255, 255)#FFFFFF
    • color(255, 102, 97)#FF6661
  • red(source: COLOR)NUMBER

    将十六进制的色值转化为RGB后提取其中的红色值

    • red(#FF0000)255
    • red(#008000)0
    • red(#0000FF)0
  • green(source: COLOR)NUMBER

    将十六进制的色值转化为RGB后提取其中的绿色值

    • green(#FF0000)0
    • green(#008000)128
    • green(#0000FF)0
  • blue(source: COLOR)NUMBER

    将十六进制的色值转化为RGB后提取其中的蓝色值

    • blue(#FF0000)0
    • blue(#008000)0
    • blue(#0000FF)255

类型转换

  • number(source: TEXT)NUMBER

    将文本格式里的数字转换为数字格式。如果无法将文本转换为数字,则此操作无效。

    • number("1234")1234
    • number("94.27")94.27
  • text(source: NUMBER)TEXT

    将数字格式转换为文本格式

    • text(1234)"1234"
    • text(94.27)"94.27"
    • text(1 + 3)"4"
  • format(value: NUMBER, format: TEXT)NUMBER

    将数字转换为文本格式。如果要将数字转换为特定格式,必须把数字转换成文本。 代表整数,0代表分数。

    • format(1234.567, "#")1235
    • format(1234.567, "#,###")1,235
    • format(1234.567, "#.###,00")1.234,57
    • format(1234.567, "#,###.00")1,234.57
    • format(1234567, "#,###.00")1,234.57
    • format(1234.567, "#,##.00")12,34.57
  • color(source: TEXT)COLOR

    将文本转换为十六进制的颜色值。文本支持十六进制颜色值结构时,才可使用。

    • color("#FFFFFF")#FFFFFF

图层

  • layer(source: TEXT)LAYER

    使用图层

    • 可以将其用于表达式和其他函数的一部分
  • layer(source: TEXT).propertyTEXT or NUMBER

    使用图层属性。了解更多关于图层属性的内容。

    • layer("Rectangle 1").xRectangle 1 图层的X坐标
    • layer("Oval 1").opacityOval 1 图层的透明度
    • layer("Input 1").textInput 1 图层的文字
  • parent(layerName: LAYER)LAYER

    使用上级图层(容器层和组件等)

    • 可以将其用于表达式和其他函数的一部分
  • parent(layerName: LAYER).propertyTEXT or NUMBER

    使用上级图层(容器层和组件等)的属性。了解更多关于图层属性的内容。

    • parent("Rectangle 1").xRectangle 1 图层的上级图层X坐标
    • parent("Oval 1").opacityOval 1 图层的上级图层透明度
  • initial(layerName: LAYER, layerProperty: TEXT)TEXT or NUMBER

    使用特定图层属性的初始值(在执行任何交互前的值)。了解更多关于图层属性的内容。

    • initial(`Rectangle 1`, "x")Rectangle 1 图层的x坐标初始值
    • initial(`Oval 1`, "opacity")Oval 1 图层的透明度初始值
    • initial(`Input 1`, "text")Input 1 图层的文字初始值

相对坐标

  • toLayerX(containerName: LAYER, x: NUMBER, y: NUMBER)NUMBER

    计算相对于容器层或组件的x坐标。容器层或组件中的图层遵循相对于其所在的容器或组件的坐标。

    • 例如,如果要基于相对于屏幕的位置(100,200)获取容器内的x坐标,请使用以下函数。
    • toLayerX(Container 1, 100, 200)相对于画面x=100的位置,获取Container 1的x坐标。
  • toLayerY(containerName: LAYER, x: NUMBER, y: NUMBER)NUMBER

    计算相对于容器层或组件的y坐标。容器层或组件中的图层遵循相对于其所在的容器或组件的坐标。

    • 例如,如果要基于相对于屏幕的位置(100,200)获取容器内的y坐标,请使用以下函数。
    • toLayerY("Container 1", 100, 200)y-coordinate relative to Container 1 based on the y-coordinate of 200 relative to the screen
  • toScreenX(containerName: LAYER, x: NUMBER, y: NUMBER)NUMBER

    计算相对于屏幕的x坐标。容器层或组件中的图层遵循相对于其所在的容器或组件的坐标。

    • 例如,如果要基于相对容器层或组件位置(10,20)获取画面内的x坐标,请使用以下函数。
    • toScreenX("Container 1", 10, 20)相对于Container 1 容器层x=10的位置,获取画面的x坐标。
  • toScreenY(containerName: LAYER, x: NUMBER, y: NUMBER)NUMBER

    计算相对于屏幕的y坐标。容器层或组件中的图层遵循相对于其所在的容器或组件的坐标。

    • 例如,如果要基于相对容器层或组件位置(10,20)获取画面内的y坐标,请使用以下函数。
    • toScreenY("Container 1", 10, 20)相对于Container 1 容器层y=20的位置,获取画面的y坐标。
Back To Top