Pergunta

Preciso definir uma variável de array bidimensional.
Consegui usar uma variável de lista, mas agora o projeto em que estou trabalhando requer um array.

Como isso é feito?
Como posso fazer um "loop" pela matriz bidimensional?

Foi útil?

Solução

Tente usar uma lista de listas.Você pode usar o sintaxe de variável estendida para acessar um item na lista interna.

*** Settings ***
Library           Collections

*** Variables ***
@{colors}         red    green    blue
@{animals}        cow    pig    dog
@{things}         ${animals}    ${colors}

*** Test Cases ***
2-Dimensional List
    Log List    ${things}
    Log    The ${things[0][1]} is ${things[1][1]}

O comprimento da lista é 2 e contém os seguintes itens:0:u'cow ', u'pig', u'dog '] 1:[você'vermelho', você'verde', você'azul']

O porco é verde

Outras dicas

Usando listas

O termo do Robot para uma variável de array é "lista".Você pode usar @{...} para designar uma variável como uma lista.Aqui está um exemplo que mostra como criar uma lista em uma tabela de variáveis ​​e como fazer isso dentro de um teste usando o comando Criar lista palavra-chave:

*** Variables ***
| # create a list in a variable table
| @{Colors} | red | orange | green | blue

*** Test Cases ***
| Example of using lists

| | # create an array inside a test
| | @{Names}= | Create list | homer | marge | bart

| | # Verify that the elements are arrays
| | Length should be | ${Colors} | 4
| | Length should be | ${Names} | 3

Para criar uma lista bidimensional, você pode criar uma lista de listas:

| | ${array}= | Create list | ${Names} | ${Colors}

O sintaxe de variável estendida permite acessar elementos individuais:

| | log | element 1,1: ${array[1][1]}

Para obter mais informações, consulte a seção intitulada Listar variáveis no Guia do usuário da estrutura do robô

Usando dicionários

Você pode usar um dicionário para simular uma matriz multidimensional.Por exemplo:

*** Settings ***
| Library | Collections

*** Test Cases ***
| Example of using a dictionary to simulate a two dimensional array
| | ${array}= | Create dictionary 
| | ... | 0,0 | zero, zero
| | ... | 0,1 | zero, one
| | ... | 1,0 | one, zero
| | ... | 1,1 | one, one
| | Should be equal | ${array["1,0"]} | one, zero

Encontrei uma maneira de percorrer uma lista de listas:

*** Settings ***
Library           Collections

*** Variables ***
@{colors}         red    green    blue
@{animals}        cow    pig    dog
@{things}         ${animals}    ${colors}

*** Test Cases ***
Nested for loop example
    : FOR    ${x}    IN    @{animals}
    \    Keyword with for loop    ${x}

*** Keywords ***
Keyword with for loop
    [Arguments]    ${x}
    :FOR    ${y}    IN    @{colors}
    \    Log  The ${x} is ${y}

O crédito vai para ombre42.Obrigado!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top