配列(リスト)が空かどうかを判定するには (empty / isEmpty)

配列が空っぽかどうかを判定する方法についての、プログラミング言語別のメモ。

Javaの配列 arr.length == 0
JavaのList lst.isEmpty()
Scala lst.isEmpty
PHP empty($arr)
Python len(lst) == 0
Ruby arr.empty?
Perl !@arr

関連

スポンサーリンク

Java

配列

長さが0かどうかで判定する。

if (arr.length == 0) {
    System.out.println("empty");
} else {
    System.out.println("not empty");
}

java.util.List

Signature:

if (lst.isEmpty()) {
    System.out.println("empty");
} else {
    System.out.println("not empty");
}

Scala

ListクラスなどにisEmptyとその逆のnonEmptyメソッドが存在する。

Signature:

if (lst.isEmpty) {
    println("empty");
} else {
    println("not empty");
}

これらはTraversableOnceのメソッドなので、SetMapでも同じメソッドが使える。

PHP

if (empty($arr)) {
  echo "empty\n";
} else {
  echo "not empty\n";
}

$arr が配列でない場合でも、論理値に変換したときにFALSEになるものや、変数が定義されていない場合にはemptyの扱いになる。

-> 論理値への変換

PHP 5.4まではempty関数には変数しか受け付けない。関数の返り値を直接渡すことはPHP 5.5からしかできない。

PHPの配列は連想配列と同じなので連想配列においてもemptyの使い方は同じ。

-> 連想配列が空かどうかを判定するには

empty関数は文字列にも使える。

empty 関数 | PHP Manual
http://php.net/manual/ja/function.empty.php

Ruby / JRuby

Array#empty? を使う。

arr.empty?

Array#empty? | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/empty=3f.html

Perl

if(@arr){
    # 空でない場合の処理
} else {
    # 空の場合の処理
}

if(!@arr){
    # 空の場合の処理
}
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク