配列(リスト)からインデックスで要素を参照するには (get) 2016/09/27
配列(リスト)の要素をインデックスで指定子て参照する方法。
多くの言語では先頭が0から始まるインデックスで要素を参照する。
Go言語 | arr[index] |
Javaの配列 | arr[index] |
JavaのList |
lst.get(index) |
Scala | lst(index) |
PHP | $arr[$index] |
Python | lst[index] |
Ruby | arr[index] |
Perl | $arr[$index] |
Go言語 (golang)
配列(Array) 2015/08/12
配列の要素は []
でアクセスする。
インデックスは0から始まる。
arr[index]
インデックスに負を使ってもRubyやPythonなどと違って後ろから数えてくれるようなことはない。
スライス(Slice) 2015/08/12
スライスの要素は []
でアクセスする。
インデックスは0から始まる。
sl[index]
インデックスに負を使ってもRubyやPythonなどと違って後ろから数えてくれるようなことはない。
Java
配列 2014/05/16
配列の要素は []
でアクセスする。
インデックスは0から始まる。
arr[index]
java.util.List
2015/04/25
java.util.List
は get
というメソッドで要素にアクセスする。
lst.get(index)
Signature:
E java.util.List<E>#get(int index)
java.util.List#get
| Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/util/List.html#get-int-
Scala 2016/05/30
Array
でも List
などの Seq
でも同じで、関数呼び出しのように
()
でアクセスする。
Javaでは []
でアクセスする配列もScalaでは ()
でアクセスする。
arr(index)
lst(index)
apply
というメソッドがあるオブジェクトは、それ自体が関数であるかのように後ろにカッコで引数を置くことで、apply
メソッドを呼び出すことができるScalaのシンタックスシュガーがあり、
Array
や List
などには apply
メソッドが定義されているのでこのように書ける。
つまり、これらは以下と同じ意味。
arr.apply(index)
lst.apply(index)
Signature:
PHP 2016/05/30
配列の要素は []
でアクセスする。
$arr[$index]
インデックスに負を使ってもRubyやPythonなどと違って後ろから数えてくれるようなことはない。
PHP 5.4まで(5.4を含む)は配列のリテラルに直接 []
でアクセスすることができない。
echo [10, 20, 30][1];
このコードをPHP 5.4以前で実行すると PHP Parse error: syntax error, unexpected '['
というエラーになる。
5.5からはこれで 20
が出力される。
Python 2015/07/04
要素には []
でアクセスする。
Pythonのシーケンスといわれるリスト、タプル、文字列で共通するアクセス方法である。
lst[index]
tpl[index]
インデックスに負を使うと後ろから数えてくれる。
lst[-1]; # 最後の要素
lst[-2]; # 最後から2番目の要素
関連
Ruby / JRuby 2015/01/01
配列の要素には []
でアクセスする。
インデックスは0から始まる。
arr[index]
Array#at
メソッドでも同じ。
arr.at(index)
インデックスに負を使うと後ろから数えてくれる。
arr[-1] # 最後の要素
arr[-2] # 最後から2番目の要素
Array#[]
や Array#at
ではインデックスが最後よりも後ろになったり、負のインデックスが先頭よりも前になってしまうと、
nil
になる。
Array#fetch
というのもあり、これはインデックスが最後よりも後ろになったり、負のインデックスが先頭よりも前になってしまう場合の動作を2番目の引数またはブロックで指定することができる。
Array#[]
は部分配列の取得にも使えるが、Array#at
は使えない。
-> 部分配列の取得
Array#[]
, Array#at
| Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/=5b=5d.html
Array#fetch
| Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/fetch.html
Perl 2014/12/31
配列そのもののシジルは @
だが、インデックスで参照するには、要素がスカラのためシジル(sigil)として $
を使い、[]
でアクセスする。
インデックスは0から始まる。
$arr[0];
インデックスに負を使うと後ろから数えてくれる。
$arr[-1]; # 最後の要素
$arr[-2]; # 最後から2番目の要素
インデックスが最後よりも後ろになったり、負のインデックスが先頭よりも前になってしまうと、
undef
になり、use warnings;
を使っていると警告が表示される。
-> 範囲外のインデックスにアクセスしたときにどうなるか?
配列へのレファレンスから要素を取り出すには ->[]
を使う。
my $arr = ['a', 'b', 'c'];
$arr->[0] # => 'a'
以下の例のように入れ子になった配列のレファレンスも ->[]
を繰り返すことでアクセスできる。
my $a = ['a', 'b', ['c', 'd', 'e']];
print $a->[2]->[0];
# => c
なぜだか ->[][]
でもアクセスできる。
my $a = ['a', 'b', ['c', 'd', 'e']];
print $a->[2][0];
# => c
インデックスを1から始めることもできるらしい。
perl - 配列を1番目からはじめてみる
http://blog.livedoor.jp/dankogai/archives/51055632.html