コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

プログラミング言語やフレームワークによって意味合いが変わる言葉、empty

empty って名がつくもの、いろいろな言語やフレームワークにあるんですが、言語によってあらわすものがまちまちなので気をつけたほうがいいよねっていう小話

いろいろなempty

Ruby

empty? (String) - Rubyリファレンス

empty?メソッドは、文字列が空文字列(長さがゼロ)ならtrue、空でなければfalseを返します。

Rubyは空文字かどうかを判断しているのでnullかどうかは見ない。

PHP

PHP: empty - Manual

変数が空であるかどうかを検査します。 変数が空であるとみなされるのは、変数が存在しない場合や 変数の値が FALSE に等しい場合です。 empty() は、変数が存在しない場合でも警告を発しません。

Rubyと近いように見えるのですが、PHPの世界観においての は広いので結構違う

次のような値は空であるとみなされます。
・"" (空文字列)
・0 (整数 の 0)
・0.0 (浮動小数点数の 0)
・"0" (文字列 の 0)
・NULL
・FALSE
・array() (空の配列)

Java

Javaの場合はString.isEmptyが一番メジャーそうなのでそちらを例に。

String - isEmpty (Java Platform SE 8 )

length()が0の場合にのみ、trueを返します。

文字列の長さを見る、Rubyの挙動とほぼ一緒。

C#

String.Empty フィールド (System)

空の文字列を表します。 このフィールドは読み取り専用です。

C#の場合は空文字を表す定数値として利用されます。 他の言語同様に状態として見たい場合は isNullOrEmpty とかが使われます。

jquery

.empty() | jQuery 1.9 日本語リファレンス | js STUDIO

要素内の子要素(テキストも対象)を全て削除します。

大概が空白チェック用途なのにいきなり違うのがjquery

あとがき

とりあえず観測できる範囲でみましたけど、結構言語によってemptyが使われる文脈はまちまち。特にRubyPHPjqueryは似た感じの使い方ができるのに期待値がズレやすいので気をつけたい。

関連リンク