go言語の開発環境を整え、プログラムを組んでみる。 言語的にはNim言語の方がオススメ。

開発環境を整える

# dnf install go
package main

import "fmt"

func main() {
	fmt.Printf("Hello world\n")
}
$ go run hello.go
$ go build hello.go
$ ./hello

実用的なプログラムを組んでみる

  • MarkdownをHTMLに変換するプログラム
// go get github.com/russross/blackfriday
// go build md2html.go
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"flag"

	"github.com/russross/blackfriday"
)

func main() {
	flag.Parse()

	md, err := ioutil.ReadFile(flag.Arg(0))
	if err != nil {
		log.Fatal(err)
	}

	//html := blackfriday.MarkdownBasic(md)
	//fmt.Println(string(html))

	htmlFlags := blackfriday.HTML_TOC
	renderer := blackfriday.HtmlRenderer(htmlFlags, "", "")
	html := blackfriday.MarkdownOptions(md, renderer, blackfriday.Options{Extensions: 0})
	fmt.Println(string(html))
}
$ go get github.com/russross/blackfriday
$ go build md2html.go
$ ./md2html xxx.md > xxx.html
  • Nuklearを使ったGUI
  • libuiを使ったGUI

Makefile

TARGET = filename
GO_SRCS := $(shell find . -name "*.go")

all: $(TARGET)

$(TARGET): $(GO_SRCS)
	go build -ldflags '-s -w' -o $@
	upx $(TARGET)

clean:
	rm -f $(TARGET)

参考

  • https://qiita.com/tetsu_koba/items/53d84286ba5d87de607a