你如何在Ruby中找到N个字符串是否相同。
说我有:
string1 = 'hi'
string2 = 'hi'
string3 = 'hi'
三者是否相同,如何判断?
直截了当的方式非常优雅。
if string1 == string2 && string2 == string3
如果你有一个数组,你可以这样做:
strings.uniq.length == 1
strings.count(strings[0]) == strings.length
strings.each_cons(2).all? { |a, b| a == b }
我特别喜欢最后一个,因为它适用于所有可枚举项。
怎么样:
[string1, string2].count(string3) == 2
我认为这比其他方法更有效,因为它只比较字符串 N-1 次并且不修改数组也不生成中间数组。
752 种方式中的两种:
a = ['hi', 'hi', 'hi']
a.uniq.size == 1 # => true
a.min == a.max # => true
a = ['hi', 'ho', 'hi']
a.uniq.size == 1 # => false
a.min == a.max # => false
(strings_array - [my_string]).empty?
基础的Set
方式。
require 'set'
[string1, string2, string3].to_set.size == 1
a = [string1, string2, string3]
a.all?{|inst| inst == a.first }