0

我是编程和 Ruby 的新手。在一些现有的代码中,它是这样说的:

kid_raising_btn=query("switch marked:'KIDRAISING'",:isOn).first

由此,我了解到kid_raising_btn定义了一个变量,它将查询并返回true或false,然后调用该方法first(但这很混乱)。

我怎样才能找到什么first

4

2 回答 2

1

“.first”是一种方便的方法。UI 查询的答案以数组的形式出现。所以“.first”代表数组的第一个元素。像“.count”这样的方法很少

例如:您的查询:

ans = query("button",:accessibilityLabel)

假设你会得到这样的结果

[
    [0] "icon rewards new",
    [1] "icon my receipts new",
    [2] "icon my account",
    [3] "icon order@2x",
    [4] "icon check in"
]

如果你像这样使用“.first”

ans2 = query("button",:accessibilityLabel).first

您将得到一个带有第一个元素的字符串,而不是一个数组。

"icon rewards new"

现在你可以看到你得到了第一个元素作为答案

于 2013-11-18T09:00:23.117 回答
1

根据您的描述,听起来这里的方法链接可能会导致您的困惑,所以首先让我们像这样重写该行代码:



    query_response = query("switch marked: 'KIDRAISING'", :isOn)
    kid_raising_btn = query_response.first

现在,更容易看到#query 方法返回一个具有#first 方法的对象。您可以查看此对象以了解它是什么类 ( query_response.class),然后查找该类的相应文档或在您的代码库中查找方法定义。例如,如果 #query 返回一个数组,您可以在此处找到文档:http ://ruby-doc.org/core-2.0.0/Array.html#method-i-first

于 2013-11-14T02:02:07.093 回答