1、变量前面符号 ‘@‘ , ‘$‘, ‘&‘和‘%’的差异详解 【robot framework】

变量类型有四种标识符

  •     $ 用于标量变量。
  •     @ 用于列表变量。
  •     & 用于字典变量。
  •     % 用于环境变量。

可以始终使用简单的$变量运算符访问列表变量(@)或字典变量(&)。

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的值

以下内容是翻译官方帮助文档:

Variables | ROBOT FRAMEWORK

 

标量变量、列表变量和字典之间有什么区别?

  • 标量变量只能包含一个值。
  • 列表变量可以包含多个值。
  • 字典变量可以包含多个键值对。

但是为什么我们可以使用 ${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] 语法可以获取啤酒箱内的特定瓶子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值