タグ

ブックマーク / qiita.com/raccy (7)

  • 連想配列はMapを使うべきは本当か? - Qiita

    ES2015が出るまではJavaScriptで連想配列を扱う場合はObjectを使用するのが通常でした。ES2015からMapが登場し、こちらを使用すべきと言われています。それは果たして当なのでしょうか? 連想配列とは何か? 単純な配列は単なる値の順列と考えられます。値が一つ一つ順番に並んでおり、入っている値の数(同じオブジェクトが重複して入っている場合もある)がその配列の長さであり、0または1から始まるインデックスでアクセスできるというものです。複数のオブジェクトをひとまとめに扱う場合、この単純な配列であってもそれなりに使用できますが、インデックスは整数しか使えず、飛び飛びに使うことはできず1、ある値を探すには順番に見に行くしか無いなど、色々と不便なところがあります。そこで、インデックスに任意の名前をつけて、目的の値をすばやく取得できるようにしたのが連想配列です。 連想配列の基要件

    連想配列はMapを使うべきは本当か? - Qiita
    tofu-kun
    tofu-kun 2018/01/22
  • デフォルト値か、デフォルト式か、それが問題だ。 - Qiita

    g()が二回呼び出されています。それも、f()を呼び出した直後にです。そう、Rubyで引数のデフォルトを書いた場合、(引数が指定されていなければ)関数呼び出しの時点で評価されます1。そして、その評価値がデフォルトの値として使われます。注意してなければならないのは、関数呼び出しが行われる度に、そのデフォルトが使われるのであれば、式が評価されると言うことです。そしてこの式をデフォルト式といいます。デフォルトになるのは、あくまで式であり、前回の結果がどのような値であったとしても、毎回評価された後の値が使われます2。評価されるタイミングは、関数呼び出しの時であり、関数定義時に一切評価されることはありません。また、引数が指定され、デフォルト式が使われない場合は、その式の評価自体がなされません。 デフォルト値 vs デフォルト式 ということで、似ているとか、パクリだとか、そんなことを言われている言語間

    デフォルト値か、デフォルト式か、それが問題だ。 - Qiita
    tofu-kun
    tofu-kun 2017/11/16
    知らんかった…
  • Rubyでif文やwhile文とか言っている入門は非推奨 - Qiita

    今日は言葉狩りを行いたいと思います。 Rubyではifもwhileも式である 生粋のRubyistである皆さんにとっては当たり前のことではありますが、Rubyではifもwhileも式(expression)です。決して文(statement)ではありません。これはCなど他のプログラミング言語にはないRubyの特徴の一つであり1、この違いは小さいようで大きいです。初心者のうちから、この違いを意識しておく必要があります。 プログラミング初心者にとって式と文の違いなんてどうでもいいのではという暴論もあるかも知れませんが、初心者だからこそ、式と文を意識させるべきです。式と文の違いがわからなければ、プログラミングの構造を理解することは永遠に来ないと思われるからです。 if文、while文という表現はおかしい ifもwhileも式ですから、if式、while式という表現はあっても、if文、while文

    Rubyでif文やwhile文とか言っている入門は非推奨 - Qiita
    tofu-kun
    tofu-kun 2017/07/03
  • Railsしかできない奴はいつまで経ってもRailsしかできない - Qiita

    あと5年もすれば「Railsしかできない奴はいつまで経ってもRailsしかできない」て言われるようになるよ - ledsun のコメント / はてなブックマーク 5年と言わず、今すぐ言おう。 流行りだと言われてRailsをやってみることにする。 Railsチュートリアルを一通りやる。 それなりの物ができる。 チュートリアルに毛が生えた程度はできる。 他のフレームワークに挑戦してみる。 Sinatraやってみたけど、Rubyの基礎がわかってないから、挫折する。RailsがあればSinatraなど不要と言って、Sinatraを貶す。なお、RailsとSinatraの違いはわかってない。 いっそ、他の言語に挑戦してみる。 Javaやってみたけど、オブジェクト指向の基礎がわかってないから、挫折する。Smalltalkこそがオブジェクト指向の流であり、C++風のオブジェクト指向は似非と言って、Ja

    Railsしかできない奴はいつまで経ってもRailsしかできない - Qiita
  • PHPができても他言語の学習には役に立たない理由を考えてみた。 - Qiita

    PHPしかできない奴はいつまで経ってもPHPしかできない? PHPには下記のような都市伝説があります。 他言語から学んだ者がPHPを習得することは容易いが、PHPから学んだ者が他言語を習得することは難しい。PHPから始めた者は、一生PHPのみで過ごすか、一度PHPを忘れて、初心から他言語を学ぶしかない。 まぁ、言っているのは私一人ですけどね。引用っぽくしてますが、引用元はありません。都市伝説ですので。1 これはとあるRubyの開発者がPHPをdisったことから始まる第2回PHPなめんな選手権2のところで、404 Blog Not Found:「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違いにあった、次の言葉がきっかけです。 それは、PHPユーザーは他の言語から学んでいるのか、という点。 PHPにも素晴らしいアプリケーションはありますし、それらを作成している人達も

    PHPができても他言語の学習には役に立たない理由を考えてみた。 - Qiita
  • JavaScriptから即時関数を排除する - Qiita

    即時関数は関数式で関数を作ったら、即時に実行する関数のことです1。JavaScriptでは有名なテクニックの一つですが、他の言語ではほとんど見かけません。まず始めに、なぜ即時関数が必要だったのかを説明し、そこからいかにして即時関数を取り除くかを考えます。 JavaScriptに即時関数が必要な理由 ES52以前のJavaScriptには次のような問題がありました。 グローバルスコープか関数スコープの変数しかない。 モジュールベースではない。 厳格モードへの切り替えが単なる文字列に過ぎない。 これを踏まえて、即時関数を使わざるを得ないところを見ていきます。 1. スクリプト全体を即時関数で囲む どんなプログラミング言語であれ、一つのファイルに全てを書いていくことは現実的ではありません。いずれJavaScriptを複数のファイルに分割して書いていく必要があるでしょう。そのとき、グローバル汚染が

    JavaScriptから即時関数を排除する - Qiita
    tofu-kun
    tofu-kun 2017/03/28
    分かりやすい
  • JavaScript初級者のためのコーディングガイド - Qiita

    JavaScriptは大変難しい言語です。Rubyの難易度を2、Cの難易度を5、C++の難易度を8にすると、JavaScriptの難易度は12ぐらいあると思います。このコーディングガイドはそんなJavaScriptの深みに嵌まらないようにするためのJavaScriptの書き方を規定したものです。初級者1のための物ですので、わかってやっている人に好きにやってください。 このコーディングガイドは絶対に従わなければならないものではありません。私は一切強制はしませんし、初級者が従わなければならないという義務もありません。採用するしないはみなさんの自由です。 禁止編 JavaScriptには安易に使用してはいけない機能があります。下記の機能は、それぞれの機能を使っても良い、または、使うべきであるという理由を説明できない限り、使用してはいけません。 ==、!= ==と!=を使用してはいけません。代わり

    JavaScript初級者のためのコーディングガイド - Qiita
  • 1