我需要在数组中获取第一个非零值。
我试过这段代码,但似乎没有用
entity['perattr.firstname'].to_s.find{|x|!x.nil?}
它给我以下错误。请让我知道如何获得价值?
找到'for“[]”:String
答案 0 :(得分:3)
要获取数组中的第一个非零值,请使用detect:
serviceIntent = new Intent(MainActivity.this, MyService.class);
serviceIntent.addCategory(MYTAG);
stopService(serviceIntent);
如果arr = [nil, nil, "foo", "bar", nil]
arr.detect{|x| !x.nil?}
=> "foo"
是一个数组,那么你可以这样做
entity['perattr.firstname']
请勿在其上调用entity['perattr.firstname'].detect{|x| !x.nil?}
,这会将其变为字符串。
答案 1 :(得分:0)
to_s
通常用于将对象转换为String。因此,无论entity['perattr.firstname']
保持什么值,entity['perattr.firstname'].to_s
将永远是一个字符串。由于String没有find
方法,因此收到错误。
找到' for" []":String