最近の記事

Dart:async/await

awaitは非同期処理を同期処理のように扱うためのキーワード。なので、いつ処理が終わってもいいような処理には別に必要ない。 asyncは関数が非同期処理であることを示すためにつけるキーワード。 ただし、asyncを持つ関数そのものは非同期なので、awaitの結果を利用するようなものはasyncを持つ関数内で完結する必要がある。

    • Golang: 変数の再宣言

      結論 ":="を使用した変数宣言 1つ以上の新しい変数("_"は新しい変数とは見做されない) 元の型と同じ型 という3つの条件を満たす場合、同じブロックで、変数の再宣言を行うことができる。 再宣言によって新しい変数が導入されるのではなく、元の変数に新しい値が代入されるだけである。 例 package mainimport "fmt"func func_int_int() (int, int) { return 1, 2}func main() { v1 := 0

      • Golang:配列、スライス

        配列[n]T型 配列の長さは型の一部 固定長(配列のサイズは変えられない) スライス[]T型 可変長 a[low:high]のhighの要素を除く半開区間 配列への参照のようなもので、元の配列の部分列を指し示す 新しく配列が作られて実体として存在しているのではない そのため、スライスの要素を変更すると、元の配列の要素が変化する 例 package mainimport "fmt"func main() { nums := [10]string{"0","1

        • mysqlからpostgresqlへ移行する方法2選

          pgloaderを使用する方法とmysql_fdwを使用する方法がある。 pgloader$ pgloder my.load my.loadは設定ファイル。例は下記URL参照。 データベースを丸ごと移行する。 上記URLのmy.loadの修正点として、mysqlのindexは含めずに移行するために create no indexes にする方がよいということ。postgresqlに移行する際に、postgresqlでは不適切なmysqlのindexが付いたままになってし

          golang:型(小数型および型変換)

          小数型 floatは存在しない。float64, float32が存在する。 型変換package mainimport "fmt"func f(arg int) { arg = float64(arg)}func main() { x := 1 y := float64(x) fmt.Println(x, y)} $ go run main.go# command-line-arguments./main.go:6:8: cannot use float64(arg)

          golang:型(小数型および型変換)

          RubyXLで容量が大きいファイルを扱う方法

          なにも考えずにRubyXLを使用すると、エクセルファイルへの書き込みが1回にまとめて行われるため、メモリ不足になることがある。ここでは1行ずつエクセルファイルに書き込みを行うことでメモリ不足を回避する方法を紹介する。 csv_to_xlsx.rb require 'csv'require 'rubyXL'# CSVファイル読み込みfile_name = File.basename(ARGV[0], ".csv")# エクセルファイル生成workbook = RubyXL:

          RubyXLで容量が大きいファイルを扱う方法

          Golang:Defer, Panic, Recoverについて学習

          defer日本語で「延期する」。deferへ関数を渡すとstackに格納され、呼び出し元の関数がreturnするときに格納された関数が実行される。 使い道 クリーンアップ処理に用いる。OpenしたファイルのCloseし忘れを防げる。特に分岐してreturn文が存在するとき、Closeを書く箇所が1か所で済むので簡潔なコードになる。 deferを使う場合 package mainimport ( "os" "log")func main() { var file *o

          Golang:Defer, Panic, Recoverについて学習