sort

ruby������sort���¹���������о�������nil���̡����������������������������������\��\������¼

������������ruby������sort���������������������������������·�����ď��쏢��돪�����돢���������������������ď������������³��������������¡�
����²��я����������������������ď������������³�����я������������������������������ď����������������½���������sort\��\���\��\���\������������¹��¡�

�돪�²¼�������������������������������������������������������������������»�����я�¡�¡�������
���¼������\³\���\���\���������»²¾������·���������������������µ��������¡�
#!/usr/bin/ruby

array = [1, 4, 5, nil, 2]
array.sort!{|a, b|
  a <=> b
}

¼���¹��ԏ��¹���������������³�����Ï��������������������¹��¡�

sort2.rb:5: undefined method `<=>' for nil:NilClass (NoMethodError)
            from sort2.rb:4:in `sort!'
            from sort2.rb:4

���돪���������\��\������¼���������¹��������¡�¡�NilClass������������<=>\���\½\���\������̏��µ���������«�������������������������������¹��¡�¡�(���­��¡���Ï����¡�`)

����������㏢���������Ώ�����������³����«���������������������������¹��������¡��³�������������������������������»�����я��������·������...orz
���³���������̏�����돩̏����������������ď������«���쏢�Ï��Ï��������������³����������������������������𡯏����돢�³�����я������������������������Ð�ޏ�Џ�¡�

#!/usr/bin/ruby

array = [1, 4, 5, nil, 2]
array.sort!{|a, b|
  a = (a == nil) ? a.to_i : a
  b = (b == nil) ? b.to_i : b
  a <=> b
} 
p array # [nil, 1, 2, 4, 5]

a ���������·������������ b ���� nil ������¾���¹�����¡�to_i\���\½\���\�����������ď��»��⏢����0�����������С�¹���·���������������������¹��¡���������»��⏪�я�����³��я������������­������to_s������»��������Ï���
�������я�����������\¹\������¼\����������������������������������������������������������¹���̏�¡�����������¡�¡�¡�

�����������������Ώ�����perl������¾���¹�����������������¡�

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @list = (1, undef, 3);
my @sort = sort { $a <=> $b } @list;
die Dumper \@sort; # [undef, 1, 3]

��������¡�undef���̏����Џ����������������������������Ï��̏����������������¹½���������������·��¡��µ���¹����perl��������¡�( Ž��Ρ��Ž���)Ž��Ž���Ž�������̏����Ž������³Ž������³Ž������³Ž��� ���� / ����/ ����

ruby������sort���¹���������������­�������������돪؏��¹���������³������

���򏩡��䏢���������������������������������������������ď��³�������������¾���²���(*Ž\��Ï��Ž\)\���

�����ď�ԏ�����¾���·���������sort���·�����ď��������������­�����������������������������¹��������������¡�����𡯏��Ðperl���������������³�����я������������������������¹��¡�

#!/usr/bin/perl

use strict;
use warnings;

my @data = qw/hoge fuga foo hoge3 foo2/;
my @sort = sort {
    length $a <=> length $b or
    $a cmp $b
} @data;

print "@sort\n";

���¹���µ������sort���·��������¡񏩡�ޏ��������¹���µ�����������������ď�����ascii½��������������������㏢������¡����Ώ����ď�������������¡�·���²���������

foo foo2 fuga hoge hoge3

���³�����Ï����������Ï��³������������ruby�����������������������ď��«�����������ď����я��������¹��¡�����������¡��³�����Ï����������á���������������½Ð���������½�����Ï��������������������������������¹���«����

#!/usr/bin/ruby

data = %w/hoge fuga foo hoge3 foo2/

sort = data.sort{|a,b|
  a.length <=> b.length or
  a <=> b
}

puts sort.join(' ')

·���²���������

foo hoge fuga foo2 hoge3

²��ď��«�돫����������������¹��������¡�¡�¡�����������������

¼���������ruby������������ false ������ nil ���������ޏ���µ����������������������������¡��½�������¾�������������������ď�ď����������������������я��������¹��¡�������������������¡�ď��»��⏢���� 0 ��������ď�ď��������������������������¹��¡��½���������ď�������¡�a.length <=> b.length ������·���²������� 0 ������¾���¹�����������ď�ď��������������������������·��������������¡�a <=> b ���������ԏ���̏��̏����̏����Џ��µ���������������������������«�����������ď����я��������¹��¡�

�����������������Ώ�������¡��³�����Ï��¹���������Ð����䏪���ԏ�����������������·���²������̏�¡�

#!/usr/bin/ruby

data = %w/hoge fuga foo hoge3 foo2/

sort = data.sort{|a,b|
  (a.length <=> b.length).nonzero? or
  a <=> b
}

puts sort.join(' ')

nonzero? ������ 0 ������»��� nil �����ҏ����ӏ��·��¡��½�������돪�³�돢����»��Џ����� self �����ҏ����ӏ��¹\���\½\���\������������·���������������¹��¡򏪪����������������«������������(;���­��Ï������)

½Ruby½���������������������Ruby
������¼��ԏ�¡�Yugui
�������������µ��¡�\���\���\���\������¼\���\���\���\���
�����������������䏢¡�2008-06-26
�����쏢�¹���¹�����������㏢¡�5.0
\���\���\³\��Ώ����ҏ��«������
karaage299 at gmail.com
��돪������������µ­»���
\���\��\���\���\���\���