Crystal error: undefined method 'member?' for Array
Crystal error: undefined method 'member?' for Array
我正在尝试将一些 Ruby 代码转换为 Crystal。
我的方法之一是:
def check_and_pop_arg(match : String, args : Array(String))
result = args.member?(match)
args.delete_if{|v| v == match}
return result
end
crystal
编译器不喜欢 Array
的 member?
方法。似乎 methods
也是未定义的,我在 crystal
.
中找不到 Array
class 的 API 文档
- 如何检查会员资格?
- 是否有我只是找不到的 API 文档的良好来源?
我试过在网上搜索,但即使使用“crystal 报告”,我也得到了太多的误报。
你要找的可能是includes?
。
您可以在 API docs, in this case Enumerable.
中找到这些内容
arr = ["a","b","c"]
puts arr.includes? "b"
range1 = (0..10)
puts range1.includes? 6
puts range1.includes? 13
# a possible solution using your code
def check_and_pop_arg(match : String, args : Array(String))
result = args.includes?(match)
if result
args.each_index {|i| if args[i] == match; args.delete_at i end }
end
result
end
puts check_and_pop_arg "b", arr
puts arr
输出
% crystal run file.cr
true
true
false
true
["a", "c"]
我正在尝试将一些 Ruby 代码转换为 Crystal。
我的方法之一是:
def check_and_pop_arg(match : String, args : Array(String))
result = args.member?(match)
args.delete_if{|v| v == match}
return result
end
crystal
编译器不喜欢 Array
的 member?
方法。似乎 methods
也是未定义的,我在 crystal
.
Array
class 的 API 文档
- 如何检查会员资格?
- 是否有我只是找不到的 API 文档的良好来源?
我试过在网上搜索,但即使使用“crystal 报告”,我也得到了太多的误报。
你要找的可能是includes?
。
您可以在 API docs, in this case Enumerable.
arr = ["a","b","c"]
puts arr.includes? "b"
range1 = (0..10)
puts range1.includes? 6
puts range1.includes? 13
# a possible solution using your code
def check_and_pop_arg(match : String, args : Array(String))
result = args.includes?(match)
if result
args.each_index {|i| if args[i] == match; args.delete_at i end }
end
result
end
puts check_and_pop_arg "b", arr
puts arr
输出
% crystal run file.cr
true
true
false
true
["a", "c"]