技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

golang

golang の map の使い方

golang で map を使って leetCode の典型的な問題を解いたので、今後の参考のために、書いたコードをここに残しておく。 重要そうなところは、ソース中のコメントに記載した。 type MagicDictionary struct { lengthToWords map[int][]string } func Constru…

golangでのファイルの文字コード判定

ファイルが 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…

golang と Java のソート例

leetCode の https://leetcode.com/problems/two-city-schedulingを、golang と Java で解いたのだが、2次元配列(スライス)の sort の処理を書いたので、今後の参考のため、ここに残しておく。 package main import "sort" func twoCitySchedCost(costs [][…

golang の空のインタフェース

golang のソースを見ていると、 interface{} というのが出てくることがある。 これは、空のインタフェースというもので、任意の型の値を入れることができる、というものらしい。 golang は、静的型付けの言語であるが、事前にそこに入ってくる型情報が分から…

gorm を使って postgres にアクセス

golang のコードから gorm を使って postgres にアクセスして、CRUD を行う時の実装例をメモとして残しておく。 実行環境は以下の通り。 Windows 10 Postgres 14.2 go 1.17.6 (windows/amd64) gorm gorm のインストールは以下で実施した。 go get -u gorm.io…

golang での変数再代入

golang の勉強をしていて、以下の情報を見つけた。 1 つの err 値を使いまわすことができます。特に,長い if-else があるときに頻繁に使用されます。 Go の良い書き方 - Go 言語 一般的に、変数の使い回しは、変数のスコープが広くなるので推奨されていない…

golang の値渡しと参照渡し

golang で関数を作成する際、引数を値渡しにするか、参照渡しにするのか、迷うことがあった。いろいろな記事を読んで、今のところの結論は以下。 関数内で、引数で渡ってきたものに対する編集が必要な場合、つまり、関数の外側の世界に副作用を起こしたい場…