golang
golang で map を使って leetCode の典型的な問題を解いたので、今後の参考のために、書いたコードをここに残しておく。 重要そうなところは、ソース中のコメントに記載した。 type MagicDictionary struct { lengthToWords map[int][]string } func Constru…
ファイルが utf8 かどうかの判定は、以下のように簡単にできる。 fp, err := os.Open(filename) if err != nil { fmt.Println("Can't open file.") os.Exit(1) } defer fp.Close() scanner := bufio.NewScanner(fp) for scanner.Scan() { line := scanner.Te…
leetCode の https://leetcode.com/problems/two-city-schedulingを、golang と Java で解いたのだが、2次元配列(スライス)の sort の処理を書いたので、今後の参考のため、ここに残しておく。 package main import "sort" func twoCitySchedCost(costs [][…
golang のソースを見ていると、 interface{} というのが出てくることがある。 これは、空のインタフェースというもので、任意の型の値を入れることができる、というものらしい。 golang は、静的型付けの言語であるが、事前にそこに入ってくる型情報が分から…
golang のコードから gorm を使って postgres にアクセスして、CRUD を行う時の実装例をメモとして残しておく。 実行環境は以下の通り。 Windows 10 Postgres 14.2 go 1.17.6 (windows/amd64) gorm gorm のインストールは以下で実施した。 go get -u gorm.io…
golang の勉強をしていて、以下の情報を見つけた。 1 つの err 値を使いまわすことができます。特に,長い if-else があるときに頻繁に使用されます。 Go の良い書き方 - Go 言語 一般的に、変数の使い回しは、変数のスコープが広くなるので推奨されていない…
golang で関数を作成する際、引数を値渡しにするか、参照渡しにするのか、迷うことがあった。いろいろな記事を読んで、今のところの結論は以下。 関数内で、引数で渡ってきたものに対する編集が必要な場合、つまり、関数の外側の世界に副作用を起こしたい場…