变量类型有四种标识符
- $ 用于标量变量。
- @ 用于列表变量。
- & 用于字典变量。
- % 用于环境变量。
可以始终使用简单的$变量运算符访问列表变量(@)或字典变量(&)。
1、注意,这将打印变量的整个内容,如果访问里面的某个元素,还是要用列表变量(@)或字典变量(&)。
2、要访问列表中的项或字典中的键/值对,你必须使用相应的运算符。
比如创建两个变量:
${list_variable}= Create List item1 item2 item3
${dictionary_variable}= Create Dictionary key1=value1 key2=value2
然后,你可以这样做:
Log ${list_variable}
Log ${dictionary_variable}
但是,要将其内容作为数据结构访问,你需要这样做:
Log @{list_variable}[0] # 打印第一项
Log &{dictionary_variable}[key1] # 打印分配给key1的值
以下内容是翻译官方帮助文档:
标量变量、列表变量和字典之间有什么区别?
- 标量变量只能包含一个值。
- 列表变量可以包含多个值。
- 字典变量可以包含多个键值对。
但是为什么我们可以使用 ${my_list} 和 @{my_list} 两种语法访问列表变量 my_list 呢?
${my_list} 访问整个列表对象 my_list。它是一个容器,包含列表的所有项。你可以使用它来访问整个列表变量 my_list,或者使用 ${my_list}[index] 的语法来访问列表的特定项。
@{my_list} 访问列表变量 my_list 的各个项。这就像列表变量 my_list 被解包,所有的项都作为单独的变量可用。
示例:
*** Variables ***
@{my_list} Apple Banana Orange
*** Test Cases ***
Test Case 1
Log ${my_list} # 通过:记录整个列表对象
Log Many @{my_list} # 通过:记录列表对象的各个项
Log Many ${my_list} # 通过:记录整个列表对象
Log List ${my_list} # 通过:记录整个列表对象
Log ${my_list}[0] # 通过:记录列表对象的第一个项
Log @{my_list}[0] # 失败:@{my_list} 不是一个列表对象,不具有索引
Log @{my_list} # 失败:Log 关键字的第二个参数“level”只允许值“TRACE”、“DEBUG”、“INFO”、“WARN”、“ERROR”、“NONE”。
# 参数“level”的值“Banana”不被允许。
Log ${my_list}[0] ${my_list}[1] ${my_list}[2] # 失败:同上
FOR ${item} IN @{my_list} # 通过:迭代列表对象的各个项
Log ${item} # 通过:记录列表对象的各个项
END
每当你想要访问列表变量的容器时,必须使用 ${my_list} 语法。
当你想要将列表变量拆分为其各个项时,必须使用 @{my_list} 语法。
就像啤酒箱里有瓶子一样。
使用 ${beer_crate} 语法可以访问整个啤酒箱。
使用 @{beer_crate} 语法可以获得瓶子。
使用 ${beer_crate}[index] 语法可以获取啤酒箱内的特定瓶子。