Ruby: неопределенный метод'>'

sub key(_) { join "", sort split //, [110] 

Если у вас был словарь,

sub key(_) { join "", sort split //, [110] 

Если у вас был словарь,

[111][0] } my $dict_qfn = "..."; my $search = "pool"; my %anagrams; { open(my $fh, '<', $dict_qfn) or die("Can't open \"$dict_qfn\": $!\n"); while (<$fh>) { chomp; push @{ $anagrams{ key([110]

Если у вас был словарь,

[111]) } }, [110]

Если у вас был словарь,

[111]; } } my @results = grep { [110]

Если у вас был словарь,

[111] ne $search } @{ $anagrams{$search} // [] }; say "Anagrams of $search: ".( @results ? "@results" : "[none]" );
[0] } if (key("pool") eq key("polo") { say "Pool and polo are anagrams of each other."; } else { say "Pool and polo aren't anagrams of each other."; }

Если у вас был словарь,

sub key(_) { join "", sort split //, [110] 

Если у вас был словарь,

[111][0] } my $dict_qfn = "..."; my $search = "pool"; my %anagrams; { open(my $fh, '<', $dict_qfn) or die("Can't open \"$dict_qfn\": $!\n"); while (<$fh>) { chomp; push @{ $anagrams{ key([110]

Если у вас был словарь,

[111]) } }, [110]

Если у вас был словарь,

[111]; } } my @results = grep { [110]

Если у вас был словарь,

[111] ne $search } @{ $anagrams{$search} // [] }; say "Anagrams of $search: ".( @results ? "@results" : "[none]" );
7
задан Jeremy Ruten 24 March 2009 в 22:03
поделиться

3 ответа

numResults a MatchData возразите и не может быть по сравнению с > метод. Необходимо преобразовать его в строку, затем преобразовать строку в число:

while(numResults.to_s.to_i > 0)
12
ответ дан 6 December 2019 в 11:53
поделиться

В случаях, где строка не соответствует выражению, numResults будет nil

таким образом, если это будет тем, на что Вы тестируете, то Вы захотите

while( !numResults.nil? ){ 

}

В случаях, где строка действительно соответствует выражению, numResults не будет nil , и дополнительно, будет содержать количество соответствий (только 1 самое большее здесь, потому что у Вас нет повторяющегося соответствия) в numResults.size

Кроме того, другие плакаты должны иметь в виду это numResults не содержит количества найденных соответствий, но содержит значение фактического соответствия от текстовых данных.

В то время как

numResults.to_s.to_i 

Мог бы работать, его единственное должное к изяществу nil.to_s.to_i == 0.

Если Вы полагались numResults чтобы быть чем-либо значимым с точки зрения regex соответствуют количеству, Вы смотрели в неправильном месте.

6
ответ дан 6 December 2019 в 11:53
поделиться

Попытайтесь изменить Ваш в то время как условие к:

while(numResults.to_i > 0)

Это вызовет numResults к целому числу. Похоже, что это возвращается как строка от Вас regexp matcher.

-1
ответ дан 6 December 2019 в 11:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: