タグ

switchとdocに関するmasterqのブックマーク (2)

  • Type Switch - えがわたにっき

    interface{}型で宣言された変数の値の具体的な型により処理を分岐させたい、というケースが考えられる。Type Switch という仕組みでそれを実現できる。switch - case 文を使って、型ごとの処理内容を case 内に記述する。 公式ドキュメントの Effective Go にもきちんと記載されているのだが、初めて見たとき少し戸惑うので一応メモ。 例えば、ある値に「かけ算」をする以下のような関数を作るとする。 数値(int)が渡された場合は、その数に指定された数を掛けた結果を返す。 文字列(string)が渡された場合は、それを指定された回数だけ繰り返す。 ソースはこんな感じになる。(簡略化するため int, string 以外では nil を返すものとする) package main import ( "fmt" "strings" ) func multiple(v

    Type Switch - えがわたにっき
    masterq
    masterq 2021/03/16
    うぉぉ。これでもりもりif文を減らせるぞ。。。
  • 2020年8月26日 Linuxカーネル、約2500の"フォールスルー"をリプレース | gihyo.jp

    Linus Torvaldsは8月24日(米国時間⁠)⁠、2020年10月のリリースに向けて開発中の「Linux 5.9」において、カーネルエンジニアGustavo Silvaの修正パッチをマージした。このパッチではカーネル全体で使われていた2484もの「/* fall through */」および類似のコメント部分をすべて「fallthrough;」にリプレースしているほか、不要なfall-throughの削除も行われている。 Merge tag 'fallthrough-pseudo-keyword-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux -Linux kernel source tree Linuxカーネルのメインライン開発では、今回のパッチを提供したSilvaを中心に、s

    2020年8月26日 Linuxカーネル、約2500の"フォールスルー"をリプレース | gihyo.jp
    masterq
    masterq 2020/08/26
    fallthroughマクロなんてあるんですね
  • 1