S-JIS[2010-10-23/2011-07-24] �ύX����

Scala�^�v��

�^�v���Ƃ́A�f�[�^�x�[�X��t�@�C���ł���1�s�E1���R�[�h�̃f�[�^�̂悤�Ȃ��́B�‚܂蕡���̃f�[�^��1�‚̉�Ƃ��Ĉ�����B
�^�v�����g���āA���\�b�h�E�֐����畡���̒l����x�ɕԂ����Ƃ��o����̂ŁA���ɕ֗��B


�^�v���̎g�p���@

�l���J���}��؂�ŕ��ׂĊۊ��ʂł�����ƃ^�v���ɂȂ�B�i�����̑��̕��@�j

	val t = (1, "abc", 2)

�܂��A�^�v���̑����̕ϐ����X�ɒ�`���Ċۊ��ʂň͂ނƁA���ꂼ��̕ϐ��ɑ�����Ă����B
���u�p�^�[���}�b�`���O�@�\�v�Ƃ����炵��

	val (n, s, m) = t		// n��1�As��"abc"�Am��2������

�^�v������X�̗v�f�����o�������o����B

	val n = t._1
	val s = t._2
	val m = t._3

���A�����Ɉˑ�����̂ŁA���܂�g��Ȃ����������悤�ȋC������B

�Ȃ��A�^�v���̌X�̗v�f�͕ύX�s�B�i�Ȃ̂ŁAt._1���ɑ�����邱�Ƃ͏o���Ȃ��j


�^�v���̌^

�^�v���̌^�́A�^�v���̗v�f�̌^���J���}��؂�ŕ��ׂāA�S�̂����ʂň͂�ŕ\���B[2011-07-24]

(�v�f�̌^, �c)

�Ⴆ�΁u("abc", 123)�v�Ƃ����^�v���̌^�́u(String, Int)�v�ƂȂ�B
�܂��A�^�v�����v�f���ɉ�����Tuple1, Tuple2, �c�Ƃ����N���X������̂ŁA�uTuple2[String, Int]�v�̗l�ɕ\�����Ƃ��o����B


�^�v����Ԃ����\�b�h

�^�v�����g���ĕ����̒l��Ԃ���B

�߂�l�̌^���^���_�ɔC���� �߂�l�̌^�𖾎�����
def sample(a: Int, b: Int) = {
	val sum = a + b
	val sub = a - b
	(sum, sub)
}
def sample(a: Int, b: Int): (Int, Int) = {
	val sum = a + b
	val sub = a - b
	return (sum, sub)
}
	val (p, m) = sample(11, 22)		// p��33�Am��-11������
	val r = sample(11, 22)
	val p = r._1	// 33������
	val m = r._2	// -11������

�^�v���̗v�f��

�^�v���͕����̗v�f��Ԃ��̂ŁA�v�f����2�ˆȏ�łȂ��ƈӖ��������Ǝv���B[2010-11-28]
�������v�f����0�i�v�f���w�肵�Ȃ��j�A1�‚��Ƃǂ��Ȃ邩�H

�v�f�� �� ���l
0
scala> ()

scala> val v = ()
v: Unit = ()
�v�f�������^�v���́AUnit�N���X�̗B��̒l�Ƃ��Ďg���Ă���B
scala> Tuple0()
<console>:6: error: not found: value Tuple0
       Tuple0()
       ^
������Tuple0�Ƃ����N���X���p�ӂ���Ă����ł͖����B
scala> Tuple()
res0: (Unit,) = (())
Tuple�N���X�Ɉ������w�肵�Ȃ��ƁA�v�f����1�‚Œl���u()�v�ł���^�v���ɂȂ����B
1
scala> (1)
res1: Int = 1
�^�v���ł͂Ȃ��āA�P�Ȃ鏬���ʂɂ��D�揇�ʂ̍������Z�����B
�‚܂�u(2 - 1)�v�Ƃ��Ɠ����B
scala> Tuple1(1)
res1: (Int,) = (1)
scala> Tuple(1)
res1: (Int,) = (1)
������Tuple1�Ƃ����N���X�͗p�ӂ���Ă���̂ŁA�����I�Ɏw�肷��Ύg����B
2
scala> (1,2)
res2: (Int, Int) = (1,2)
scala> Tuple2(1,2)
res2: (Int, Int) = (1,2)
scala> Tuple(1,2)
res2: (Int, Int) = (1,2)
scala> Pair(1,2)
res2: (Int, Int) = (1,2)
scala> 1 -> 2
res2: (Int, Int) = (1,2)
�v�f����2�‚̏ꍇ���uPair�v�Ƃ������ʂȃN���X�i�I�u�W�F�N�g�j�Ɓu->�v�Ƃ���������������B[2010-12-29]
3
scala> (1,2,3)
res3: (Int, Int, Int) = (1,2,3)
scala> Tuple3(1,2,3)
res3: (Int, Int, Int) = (1,2,3)
scala> Triple(1,2,3)
res3: (Int, Int, Int) = (1,2,3)
�v�f����3�‚̏ꍇ���uTriple�v�Ƃ������ʂȃN���X�i�I�u�W�F�N�g�j������B[2010-12-29]
22
scala> (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
res22: (Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int
, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int) = (1,1,1,1,1,1
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
�@
23
scala> (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
<console>:6: error: value Tuple23 is not a member of package scala
       (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
       ^
�ǂ����v�f��23�ˆȏ�̃^�v���͑ʖڂ炵���B�iScala2.8.0�j

Scala�ڎ��֖߂� / �Z�p�����֖߂�
���[���̑��M��F�Ђ�����

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@