Halcon|基础语法

基础语法

等 号: :=

不等号: #

注释符: *

字符串赋值: str:=’halcon’

等于比较符: if(X=10)

与: if(A>1 and A<30)

或: if(A>1 or A<30)

求反: if(not(A=10))

For 循环:

for I := 0 to NumBalls - 1 by 1

endfor

While 循环:

while (x == 1)

Endwhile

异常获取:

Try

catch (Exception)

Endtry

Switch多分支:

switch (Index)
case 1:
    break
case 2:
    break
case 3:
    break
default:
    break
endswitch

数组的一些操作

  • 将一个Tuple数组赋值给变量
Tuple1 := [1,0,3,4,5,6,7,8,9]
  • 给Tuple数组元素赋值
Tuple1[1] := 2

结果变为:

[1, 2, 3, 4, 5, 6, 7, 8, 9]  // 可见第二个数从 0 变成了 2
  • 批量改变数组元素的值
Tuple1[1,3,5] := 'abc'

结果变为:

[1, 'abc', 3, 'abc', 5, 'abc', 7, 8, 9] // 下标 1, 3, 5 对应的改成了 `abc`
  • 批量给Tuple数组赋值, 例如,0到10连续数值
Tuple3 := [0:10]

结果为:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  • 批量给Tuple数组赋值,其值为3到20连续数值,步长为2。 // 中间的步长为1就成连续的了。
Tuple4 := [3:2:20]

结果为:

[3, 5, 7, 9, 11, 13, 15, 17, 19]
  • 批量给Tuple数组赋值,其值为100到-100连续数值,步长为-10
Tuple5 := [100:-10:-100]

结果为:

[100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0, -10, -20, -30, -40, -50, -60, -70, -80, -90, -100]
  • 对两个Tuple数组进行合并操作
TupleInt1 := [3,1,2,9,1]
TupleInt2 := [10,2,4,3,2]
tuple_union (TupleInt1, TupleInt2, UnionInt)

变量UnionInt变为:

[1, 2, 3, 4, 9, 10]
  • 对两个Tuple数组进行交集操作
TupleInt3 := [3,1,2,9,1]
TupleInt4 := [10,2,4,3,2]
tuple_intersection (TupleInt3, TupleInt4, IntersectionInt)

变量IntersectionInt变为:

[2, 3]
  • 对Tuple数组元素进行替换
OriginalTuple := [0,1,2,3,4,5]
tuple_replace (OriginalTuple, [0,1], ['x','y'], Replaced)

变量Replaced变为:

['x', 'y', 2, 3, 4, 5]
  • 向Tuple数组插入数值
OriginalTuple := [0,1,2,3,4,5]
tuple_insert (OriginalTuple, 3, 'x', InsertSingleValueA)

变量InsertSingleValueA变为:

[0, 1, 2, 'x', 3, 4, 5]  // 在索引 3 位置插入了元素 `x`

字符数字格式化

i1 := 123$'#o'  //8进制,0为前缀
i2 := 123$'#x'  //16进制,0x为前缀,7b为赋值
i3 := 123$'#X'  //16进制,0x为前缀,7B为赋值,7b与7B是一样的
i4 := 123$'#f'  //double型,默认保留小数点后六位.
i5 := 123$'#g'  //使数字始终保持六位,不足补零.
i6 := 123$'#G'  //使数字始终保持六位,不足补零.
i7 := 123$'#e'  //转换成科学计数
i8 := 123$'#E'  //转换成科学计数

*****************整数*****************
d1 := 123$'6'   //小于六位时,文本右对齐,大于不影响
d2 := 123$'-6'  //小于六位时,文本左对齐,大于不影响
d3 := 123$'.6'  //小于六位时,在左边补零,大于不影响
d4 := 12345$'10.5'  //小于10位时,文本右对齐;小于5位则在左边补零,大于不影响

*****************文本*****************

s1 := 'Hugo'$'10'      //文本右对齐
s2 := 'Hugo'$'-10'     //文本左对齐

对应的变量结果:

▲ 变量结果

字符数字拼接

j := 1
str := 'hello_' + j$'02'

输出:

可用于一些文件路径的拼接。




参考:

互联网。

posted @   double64  阅读(4215)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示