タグ

ブックマーク / qiita.com/tenntenn (4)

  • 簡単な式の評価機を作ってみる #golang - Qiita

    はじめに 皆さんはgoパッケージを使ったことはありますか?私は、GoGo!言いながら、恥ずかしながら、あまりまともに使ったことがありませんでした。最近は、仕事でもAST(抽象構文木)を弄り倒すことがあるので、今回はgoパッケージに触れたいと思います。 ここでは、簡単な四則演算などを評価し、結果を返すREPLを作ってみます。一見難しそうですが、ほとんどgoパッケージの機能を使うので、非常に簡単です。 ASTへパースする まずは入力された文字列をパースし、ASTを生成してみます。ここでは、式の評価なので式単位でパースします。パースには、parser.ParseExprを用います。 たとえば、以下のように使用できます。 expr, err := parser.ParseExpr("1+1") if err != nil { panic(err) } ast.Inspect(expr, func

    簡単な式の評価機を作ってみる #golang - Qiita
    sonots
    sonots 2016/12/22
  • Google App Engine for Go のローカルサーバでデバッグをする #golang #GAE - Qiita

    はじめに Google App Engine for Go (GAE/Go) を使っていて、ローカルでデバッグがしたくなることがあるかと思います。 Goにはいくつかデバッガがあり、IDEが対応しているものもあります。 ここでは Delve というデバッガを使ってデバッグする方法を紹介します。 Delveは動いているGoのプロセスにアタッチしてデバッグすることができます。 そのため、GAE/Goのローカルサーバのプロセスにもアタッチしてデバッグすることができます。 しかし、GAE/Goのローカルサーバのプロセスは、複数動いていたり、切り替わったりするため、一筋縄ではいきません。 ここでは、以下の記事を基に、ターミナル上でローカルサーバのデバッグをやってみます。 Debugging Golang Appengine module with Visual Studio Code Delveのイン

    Google App Engine for Go のローカルサーバでデバッグをする #golang #GAE - Qiita
    sonots
    sonots 2016/08/23
    he-
  • 私のGopherコレクション2014 #golang - Qiita

    はじめに GoCon 2014 Autumnお疲れ様でした! Rob先生や鵜飼さんのキーノートをはじめ、豪華な登壇者ということもあり、 今まで最も大きな規模のGoConとなりました。 しかし、この記事では、GoConのことは書きません!また別の機会で詳細は書けたらなと思います。 GoConも終わり、12月と月曜日が一緒にやって来ましたが、ひとつ重要なことを忘れてました。 Advent Calendarを書いてなかったのです。。。 ということで、GoConが終わってから必死で書いております。 技術的な内容は時間的に厳しいので、私のGopherフォルダが火を吹くぜ!ということで、 私が描いたGopherを紹介したいと思います。 なお、Gopherのオリジナルのデザインは,Renee Frenchさんです. 家のやつをトレースしたGopher 家のgopherはどれもpngで公開されています

    私のGopherコレクション2014 #golang - Qiita
    sonots
    sonots 2014/12/01
    ステッカーかわいい
  • インタフェースの実装パターン #golang - Qiita

    はじめに この記事は,以下の過去にQiitaに投稿したインタフェースの実装パターンの記事に,typeやメソッド,インタフェースの基的な説明を追加してわかりやすくしたものです. Go言語における埋め込みによるインタフェースの部分実装パターン structにinterfaceを埋め込んで,動的に入れ替えるパターン まずtypeとメソッド,基的なインタフェースの実装方法についておさらいすることで,さまざまなインタフェースの実装パターンを扱う準備をしましょう. typeで型を宣言する まずはじめに,Go言語における型の宣言方法をおさらいします.Go言語をはじめたばかりの方の中に,typeの使い方を限定的にしか理解していない方をよく見かけます.ご存知のとおり,typeは型を宣言するために使うキーワードです.以下のように,構造体型やインタフェース型の宣言の際に,使用することが多いでしょう.

    インタフェースの実装パターン #golang - Qiita
  • 1