我是编程和 Ruby 的新手。在一些现有的代码中,它是这样说的:
kid_raising_btn=query("switch marked:'KIDRAISING'",:isOn).first
由此,我了解到kid_raising_btn
定义了一个变量,它将查询并返回true或false,然后调用该方法first
(但这很混乱)。
我怎样才能找到什么first
?
“.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"
现在你可以看到你得到了第一个元素作为答案
根据您的描述,听起来这里的方法链接可能会导致您的困惑,所以首先让我们像这样重写该行代码:
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