プログラムを中心とした個人的なメモ用のブログです。
タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。
私は最初に猫でもわかるC#プログラミングという本でC#の勉強をしましたが、その中で唐突に Func やら Actionやらが登場し、ほとんど説明がなかったのでちんぷんかんぷんでした。
ネットで調べてやっとわかったのですが、ラムダ式を活用するためにも、ここらへんはしっかり説明しておいたほうがいいんじゃないかと思いました。
ラムダ式自体の説明は結構わかりやすかったんですけどね。
というわけで、ここに調べたことを自分なりにわかりやすくまとめておきます。
デリゲート自体の理解は C における関数ポインタと同じだと考えればすぐに理解できました。
ただ、関数ポインタもそうですが、デリゲートの宣言というのはとても面倒です。
そのため、型パラメーターを使用し、汎用的に使用できるデリゲートが最初からいくつか定義されているようです。
これらのデリゲートのことを、定義済みデリゲートというようです。
いろいろあるようですが、よく使用するのは Func と Action だと思います。
簡単に言えば、
となります。
どちらも引数の数に応じてオーバーロードされているようです。
詳細は参考URLを参照してください。
リーダブルコードを読むと書いてある以下の文章。
例えば、「ヒューリスティック」・「ブルートフォース」・「ナイーブソリューション」などがそうだ。コメントが長くてくどいと感じたら、こうした表現を使えないか確かめよう。
ヒューリスティックはコードコンプリートで何度も出てきましたし、ブルートフォースもよく聞きます。
しかし、ナイーブソリューションは初めて聞きました。
意味がわからなかったので検索してみると、日本語のページでは回答が見つかりませんでした。
仕方ないので、"naive solution" でググってみます。
英語苦手なんですけどね・・・。
いくつか見つけた中では、以下のページがそれっぽい回答でした。
「経験豊富なプログラマーが最初に思い付く解決手段」や「愚直な(安易な)解決手段」とでも言えばいいのでしょうか。
あまり自信がないので、原文を読まれたほうがよろしいかと思います。
ブログなどにソースコードを載せる際、GitHub Gist を利用するととても便利です。
ここでは GitHub Gist のコードのいろいろな埋め込み方法をまとめてみます。
ファイル名の最後に ?file=ファイル名 を追加すると、そのURLの中の特定のファイルだけを埋め込むことができます。
以前は1ファイルごとに New Gist から作成していたのですが、この方法を知ってからは出来る限りファイルをまとめて登録するようになりました。
しかし、デフォルトで出来るのはこれだけのようです。
その他の埋め込み方をするために gist-embed というのがあるようです。
これを使えば、例えば特定の行だけ埋め込んだり、ハイライトしたり、いろいろな埋め込み方ができます。
以下のページに使い方とサンプルがあります。
以下、個人的によく使うものを抜粋しておきます。
<code data-gist-id="ID"></code>
data-gist-file="ファイル名"
data-gist-hide-footer="true"
data-gist-line="2" data-gist-line="2-4" data-gist-line="1,3-4"
data-gist-highlight-line="1,3,5"