配列(リスト)の要素の値を設定(代入)するには (set) 2016/09/27
配列(リスト)の要素の値をインデックスで指定して設定(代入)する方法。
大抵の言語では要素を参照する書式を代入演算子の左辺に置くと、右辺の値を要素として代入してくれる。
Javaの配列 | arr[index] = value; |
JavaのList |
lst.set(index, value); |
Scala | lst(index) = value; |
PHP | $arr[$index] = $value; |
Python | lst[index] = value |
Ruby | arr[index] = value |
Perl | $arr[$index] = $value; |
Java
配列 2015/03/26
要素への参照を代入文の左辺に置けば、要素に値を設定できる。
arr[index] = value;
java.util.List
2015/04/25
代入演算子の左辺に配列の要素を置くことはできず、メソッド呼び出しする。
lst.set(index, value);
Signature:
E java.util.List<E>#set(int index, E element)
java.util.List#set
| Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/util/List.html#set-int-E-
Scala 2015/01/19
イミュータブル(不変)オブジェクトであるList
などでは要素を変更することはできないが、変更可能なオブジェクト(Array
やListBuffer
など)では要素への参照を代入演算子の左辺に置くことで変更できる。
Javaと違って要素へのアクセスは[]
でなく()
を使い、代入でも()
を使う。
lst(index) = value;
Array
(Javaの配列)での例
val lst = Array(10, 20, 30, 40, 50);
lst(3) = 400;
println(lst(3));
// 400
ListBuffer
での例
import scala.collection.mutable.ListBuffer;
val lst = ListBuffer(10, 20, 30, 40, 50);
lst(3) = 400;
println(lst);
// List(10, 20, 30, 400, 50)
Array
以外での要素への代入は、JVM上では実際にはupdate
というメソッド呼び出しになっているので、
lst.update(3, 400);
と書いても同じ。scala.collection.mutable.Seq
に update
メソッドがあるので、これの派生クラスであれば ListBuffer
に限らず同じ書き方ができる。
PHP 2015/03/26
要素への参照を代入文の左辺に置けば、要素に値を設定できる。
$arr[$index] = $value;
$index
を省略すると、配列の最後に要素を追加する意味になる。-> array_push
Python 2015/03/26
リストの場合は、要素への参照を代入文の左辺に置けば、要素に値を設定できる。
lst[index] = value
イミュータブルなオブジェクトであるタプルでは要素を変更できない。
Ruby / JRuby 2015/03/26
要素への参照を代入文の左辺に置けば、要素に値を設定できる。
arr[index] = value
配列のサイズ以上のインデックスを指定した場合は、サイズが拡張され、間は nil
で埋められる。