はじめに
先日DonutsさんのGo言語勉強会に参加した際に、golangの出力結果に謎の文字が出力されてそれについて唸ったので原因と解決方法をば。
なにがあったの
package main
import "fmt"
func main() {
str := "text"
fmt.Print(str)
}
原因と解決方法
zshは出力結果の最後が改行されていない場合、zsh側で自動的に改行を行ってくれる。
そして、その際に勝手に改行したことを示す記号として%が出力される。
試しにbashで同じコードを実行してみるとこう
zshとは違い自動的に改行されていないのがわかる。
試しにgolang側で最後に改行をしてあげるとこう
func main() {
str := "text"
fmt.Println(str)
}
なるほどね?
良いですね。
表示したくないと思った場合はこんな感じに.zshrcに
export PROMPT_EOL_MARK=''
空文字を設定してあげれば大丈夫です。