タグ func main
人気順 10 users 50 users 100 users 500 users 1000 usersgolangではスタックとヒープを気にする必要が無い
調べようと思ったきっかけは、golang では以下のように ローカル変数のアドレスを戻り値としても問題ないということ。 package main import ( "fmt" ) type Animal struct { Name string Age int } func main() { animal := allocAnimal() fmt.Printf("allocate animal structure %p", animal) } func allocAnimal() *An... 続きを読む
GitHub - ddddddO/gdag: Easily manage 🕸DAG🕷 with Go. DAG is an acronym for Directed Acyclic Graph. Output is in PlantUML format. Useful for progressing tasks.
gdag Easily manage 🕸DAG🕷 with Go. DAG is an acronym for Directed Acyclic Graph. Output is in PlantUML format. Useful for progressing tasks. Demo PlantUML go run main.go > dag.pu package main import ( g "github.com/ddddddO/gdag" ) func main() { var goal *g.Node = g.Goal("ゴール(目的)") var design ... 続きを読む
nilがnilじゃないのでerrorになるのを静的解析で検出する - Qiita
package main import "fmt" type MyErr struct{} func (*MyErr) Error() string { return "MyErr" } func F1() *MyErr { return nil } func F2() error { return F1() } func main() { err := F2() if err != nil { fmt.Println("Error!") } } F1()がnilを返しているのでF2()もnilを返すのですが、返ってきたerrはnilに... 続きを読む
QuoteとUnquote #golang - tenntenn.dev
Quoteを行う Goで文字列を""で括って(Quoteして)表示したい場合、fmt.Printf関数を用いて行うことが多いでしょう。 package main import "fmt" func main() { fmt.Printf(`"%s"`, "hoge") } これを実行すると以下のようになります。 $ go run main.go "hoge" 文字列中に"が含まれていた場合に、Goのソースコード上の文... 続きを読む
gowrtr - goコード生成支援ライブラリ - その手の平は尻もつかめるさ
gowrtr (go writerと発音します) というgoのコード生成支援ライブラリ (ジェネレータ群) を書きました. github.com Synopsisに書いたように, package main import ( "fmt" "github.com/moznion/gowrtr/generator" ) func main() { generator := generator.NewRootGenerator( generator.NewCommentGenerator(" THIS COD... 続きを読む
fmt.Printfなんかこわくない - Qiita
package main import ( "fmt" ) func main() { fmt.Printf("%v\n", true) fmt.Printf("%v\n", 42) fmt.Printf("%v\n", uint(42)) fmt.Printf("%v\n", 12.345) fmt.Printf("%v\n", 1-2i) fmt.Printf("%v\n", "寿司 続きを読む
Golang で Let's Encrypt の証明書を発行して使用する
Golang で ACME プロトコルがサポートされてたみたいなので試してみた。 Document のとおりなんだけれど、以下のコードだけで証明書を発行してListenまでしてくれる。 golang.org/x/crypto/acme/autocert package main import ( "fmt" "log" "net/http" "golang.org/x/crypto/acme/autocert" ) func main() { mux := htt... 続きを読む
Goのpanicと向き合う。 - Qiita
Ho!Ho!Ho! Merry Panic!! この記事は Go Advent Calendar 2017 の25日目の記事です。 ※本記事はOSX及びUNIXシステムなことを前提として向き合います。 package main func main () { var p * interface {} * p = 0 } /* panic: runtime error: invalid memory ... 続きを読む
Go言語のHTTPリクエストのレスポンスボディーとEOF - プログラムモグモグ
2017 - 12 - 12 Go言語のHTTPリクエストのレスポンスボディーとEOF Reader interface の Read 関数は、どのタイミングで io.EOF を返すのでしょうか。 まずは strings.Reader で見てみましょう。 package main import ( "fmt" "strings" ) func main() { r := strings.NewRe... 続きを読む
【golang学習シリーズ】iotaの不思議 | from umentu import stupid
golangのiotaの動作について簡単な例を書いてみた。iotaなるものを初めて知ったので、まとめてみた。 変数に連番を作る時にとても便利だし、固有の値を自動的に振り分けるのに便利。 詳細な仕様は公式リファレンスを参照のこと。 package main import ( "fmt" ) func main(){ /* 0から始まり、自動的にインクリメントされる */ const ( a = io... 続きを読む
Goのスコープについて考えてみよう #golang - Qiita
はじめに Twitterで以下のような投稿をしてみました。 https://twitter.com/tenntenn/status/815807925222412292 この問題は、以下のコード中に存在するスコープの数を聞いている問題です。 package main import "fmt" func main () { const message = "hello, world" fmt . P... 続きを読む
Big Sky :: Golang の channel の使い所
golang の特徴と言えば goroutine と channel ですが、その使いどころに悩む人もおられる様です。 goroutine は非同期に実行される処理、channel はその groutine と通信する為の仕組みと考えると分かりやすいです。 package main import ( "fmt" "time" ) func main() { task := make(chan st... 続きを読む
Big Sky :: Go言語で日付処理
元ネタ: 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ Go言語が無かったので書いてみた。 現在時刻の取得 package main import ( "fmt" "time" ) func main() { fmt.Println(time.Now()) } 2013-06-19 21:46:14.186298 +0900 +... 続きを読む