IsBlank
比較対象はどちらかというと Java かなと思ったけど。。。*1
それだけならいい。もし値がnilである可能性があるなら、Rubyでは「if var && !var.empty?」と書かなければいけない。この時点でPHPerは不機嫌どころかブチ切れる。なんでこんなに書かなきゃいけないんだ!? PHPなら「if ($var)」で済むのに!! SHIIIIT!!
RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記
if ($var) ... # PHP
if var && !var.empty? ... # Ruby
JS ばかりやってるとこの辺が億劫に感じますね。
さて C# 3.0 では拡張メソッドを使うと、元記事の「Object#blank?」相当のことができます。
public static class StringEx { public static bool IsBlank(this string str) { return string.IsNullOrEmpty(str); } }
こんなクラスを作って using したら
class Program { static void Main(string[] args) { string str = null; Console.WriteLine(str.IsBlank()); // True } }
こんな風に使えます。
面白いのはインスタンスメソッドの呼び出しに見えて実際は static メソッドの呼び出しなので、str が null でもヌルポしないことです。
いやあ C# かわいいですね。