Golang

Golang で指定ファイルを関連付けで開く on Windows

たとえば hoge.ini というコマンドラインを与えると、Windows であれば「ini に関連付けられたテキストエディタ」で開いてくれる。しかし Golang の exec.Command() では開いてくれない。さあどうする? ini ファイルを何で開くかを明示的に与える? もっと…

Golang で書き込むファイルの文字コードは LF 固定であるということ(CRLF はサポートしていない)

Python の時はちゃんと CRLF で書いてくれていたが、Golang だと LF 固定になる模様。Go 公式も「CRLF はサポートしない」と結論を出している。 試したコード CRLF をサポートしない、の根拠は? 試したコード func list2file(filepath string, lines []stri…

Golang で winapi を叩く練習として GetWindowText を呼び出してみた

最初は AllenDang/w32 を検討していたが、手元の Windows 7 で動かなかった& なんか fork してる別ソース使わないとダメ(or 自分でソース直す)っぽかった、で面倒だったので、一度自分で書いてみることに。 ソース 解説 感想 参考 ソース package main impo…

Golang でファイルに書き込んだ時の改行コードが CRLF ではなく LF になる件

ファイルに書き込む系の処理の話だが、Python で書いてきたコードたちは CRLF になってくれていた。しかし Golang だと LF になる模様。CRLF にする方法はないものかと調べた。 結論 どうしても CRLF で出したいなら? 余談 なぜ LF であるべき? そもそもな…

Golang で Markdown TOC 作成ツールを作り直してみた

ここ数週間くらいは Golang を触っていた。stakiran/intoc という Markdown から TOC をつくる Python 製ツールがあって、これを Golang で実装し直すことで学習を図った。 ここまで学んだことをざっくりまとめておく。 前提 環境構築 言語環境のインストー…

Golang でファイルを書き込んだ時に古い内容が末尾に残る件

File に Write して、ちゃんと Flush もしてるのに、なぜかゴミが append されているような挙動になる。ゴミデータはどうも「前回そのファイルに存在していた内容」っぽい。つまり古いファイル内容が残ったままになっている?……という、よくわからない挙動に…

Go 言語の遅延実行 defer がピンと来なかったのでわかりやすくまとめた

具体例で段階的に理解を試みるアプローチ。 初期化、処理、後始末をする例 処理の途中でエラーが起きたとする 後処理を実行させるために defer を使う この defer、内部的には何してんの? おわりに 初期化、処理、後始末をする例 例として初期化、処理、後…