LoginSignup
2
2

More than 5 years have passed since last update.

牛歩なGolang稚児ようやく動くものが作れた

Last updated at Posted at 2016-07-21

背景

2016/07/20
※個人的なあれなので読まなくてOKです
さて、MVPか。何作ろう。。
マインドマップなアプリでも作ろうかなあ
CSVデータで扱いたい:簡単だから
GUI

XMind(+ Bonjour)を入れる
FreeMindも入れるか:excelと親和性があった気がする。

どっちもコピペとか行けるのだろうか?
ツリー構造の汎用データ構造を持って共有したい
できるならRDBSみたいに・・・いやそれは要らないか

LibreOfficeでコピペ実験してみたらXMindがいい感じにコピペできた。

CSVを扱うコードはWeb上にすでにあった
http://qiita.com/kesuzuki/items/202cc58db3fd1763c095
⇒クリップボードを扱ってXMind向けに疑似汎用Export/Importでも実装しようかな。
※ほんのちびっと自動化するだけだけど。すでに機能あるかもだけど。

クリップボードもあった。
https://github.com/atotto/clipboard

事前のパッケージのインストールもコマンド一発でやって欲しいなあ
簡単にスクリプト化できないんだろうか。
⇒スクリプト作りながら既存のCSVを扱うコードを走らせてみよう

最近git-bash使ってるから.batにgo getをコピペしたものを
cmd.exeの引数にして叩いてみる。
http://d.hatena.ne.jp/m-hiyama/20110729/1311910095

コマンドプロンプトの動作がおかしい。。
動いてるのだろうか・・・?
よく分からないので素直にcmd.exeから.batを叩く。
いつもログないので不安になるけどERROR出ないから多分うまくいったんだろう。

CSV読み込みコードを書いている間に、
どうやって取り出したい対象を読み込むんだ?
ということに思い当たる。

要件自体は普通にコピペすればできてるから
やり方を選ばなければすでに実装されているわけで。

コマンドラインからやるのだとしても
.xmindファイルパースするの。。?
コマンドライン以外から引数付きで実行する方法ってすぐ分かるんやろか??

何も産み出さないかもしれないとは思いつつ
とりあえずGolangの勉強だけになってもいいじゃないかと自分に言い聞かせる。

ようやく簡単なプログラムを作成

まずはCSVを扱うコードを作成しようと思ったら、
苦労する苦労する。。

主な参考サイト

http://qiita.com/kesuzuki/items/202cc58db3fd1763c095
http://qiita.com/ikawaha/items/28186d965780fab5533d

参考になりました。誠にありがとうございますm(_ _"m)

助かった参考サイト

ついでにサンプルデータを下記のサイトから失敬しました。
http://pythondatascience.plavox.info/pandas/csv%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF/

できたこと

・go run で正常終了
・引数使用
・ファイル読み込み(3種類)
・タブ区切りファイル

何かに追われるようにとりあえずGitHubにアップ
https://github.com/senoEisuke/mvp/blob/fileReadTrial/my_csv.go

余談

一番ハマったのはスコープをしくっていたことでした。

以下、詳細。特にオチは無し。
CSV読んで出力するコードを書いてビルドして実行した。
メモリ参照エラーが(笑)
まともに動かない。
⇒ ビルドしないで動かそう
ファイルが分からんかったんやて。拡張子無視?
⇒拡張子以外同じファイルを移動したり、絶対パスにしたり、""で括ったりしてもダメ

いちいちavastがポップアップする(笑)
exeが引っかかるようなのでgo run で実行しても
exeは生成されているんですね。

git-bashでやってもダメ。。なんでやー

とりあえずファイルOpenの前にパスを出力してみようとしたけどダメだった。
csv.goの名前がアカンのか?
⇒my_csv.goでもダメ

んーHello World的なのやったっけかなー ⇒ やったら問題なし。
cmdでもgit-bashでもLiteIDEの実行ウィンドウでもOK。
avastがポップアップ荒ぶってうざい。

関数もfor文も問題ないみたい。

引数取るのがアカンのかな
くそー単なるファイル読み込みからのPrint出力が中々できない。。
 1.CSV(タブ区切り):ファイルが特定できないと言われた。
 2.bufioでNewReaderSize, ReadLine:返り値の処理ががが。
 3.Scanner:invalid argument

ここ見てスコープミスってることに気付いてとりあえず2.OK
https://groups.google.com/forum/#!topic/golang-nuts/KQd2s6ktMS4

3.1.と順当にOK!

やったー!
とりあえずGitHubにアップしたろ。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2