Deferについて調べていました

前回Goのチュートリアルにdeferというものがあり、

初めての概念だったのでちょっと混乱していたところでした。

詳しめの記事を読んで、ようやくどういった使い方を想定しているのか把握。

 

通常、呼び出された関数はその場で実行されるところが、

遅延関数はその呼び出し元関数が終わるタイミングで実行されるということでした。

これによって、例えばファイルを開いた後に閉じる遅延関数を仕込むことで、

何らかの原因で途中でプログラムが終了する場合でも閉じ忘れることがありません。

 

また、異常終了を示すPanicやPanic時に解決を図るRecoverという関数と組み合わせることで、

異常を検知した際も、適切に後処理を動作させることができるようです。

使い方マスターしてツールに組み込んだりしてみたい・・・。

 

以上

Goに少しだけ触れてみて

チュートリアルを進めて、forやifなど基本的なところを確認していきました。

基本的には他の言語と変わらなさそう。

書き方がちょっと特殊で、特に必要以上にカッコを使わないようになっている気がしました。

それから、Deferという遅延関数?的なものが紹介されてたんですが、

それの使いどころが分からない。

Returnまで値を評価しない?

 

どうやら以下に色々書かれているようなので、

しっかり読みこんでみたい、障害対応のフローとかに使えそうかも。

Defer, Panic, and Recover - go.dev

 

少しわかったら色々サンプルを作成しつつ、

実際に簡単なモジュールを作ってみたい。

 

以上。

税扶養

そろそろ年末調整の時期ですね。

そういえば今年1年間は妻の収入がなかった(育休だった)ので、

税扶養に入れられるのでは?という話になり、調べていました。

 

結果、確かに今年は収入ゼロでした。

育休の手当て(育休休業給付金)は収入とはみなされないようです。なるほど。

 

そして、晴れて税扶養に入れるようになりました。

さて、その場合ってどれくらい得をするんですかね?

ざっと調べたところ、税扶養に入ることで配偶者控除として38万所得から控除されるらしい・・・。

仮に自分の税率が20%かかる場合は、38万所得が減った場合7.6万程度取られずに済む計算になる・・・?

 

こういう計算って、あってるかどうか誰も教えてくれないのでちょっと不安。

でもまぁ、少しは税金が減額されるってぇことで、良かったです。

 

以上。

 

 

 

 

以上。

障害続きの毎日

ここ最近地味で根深い障害にやられています・・・。

昔から引っ張ってなんとか使っているシステムが、ついにHW障害に。

直そうとしたらそのままDBが落ちて、機能停止。

 

色々やってみたけど直らず、結局再構築の羽目に・・・。

構築時、過去の手順書が見当たらないとかで非常に時間がかかりました。

結局見様見真似で直した、、、動いて本当に良かった。

 

月始めに連日残業したせいで、

残業時間がえらいことになってます、どこかで調整しないと。

そして、障害対応でやりたかったことが全然できていない。

プライベートもやる気が出ないレベルで引きずってます。

レガシーーーーーーーーーーー滅びろーーーーーーーーーー

 

以上

 

Goのメモ

# モジュールのインポート

以下のようにインポートする

import "rsc.io/quote"

 

# モジュール自体はmodコマンドで用意する
$ go mod tidy
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2

 

# モジュール読み込みのための変換?

f:id:syachineko:20211108234222p:plain

この辺まだ理解が追い付かない

本来であればgoのサイトから取得するものだけど、

今回ローカルのファイルを用意しているからPATHをローカルのものに指定しているってことかな???

 

f:id:syachineko:20211108234117p:plain

また動いた!

次は以下から。

Return and handle an error - The Go Programming Language (golang.org)

 

以上。

Goを触ってみました

チュートリアルの最初のところだけ・・・・。

Windowsでプログラミングしようとすると結構面倒だなぁ。

 

Go自体をインストールして、

開発用にVSCode入れて、

チュートリアル通りにHello World書いて、、、

 

f:id:syachineko:20211108231822p:plain

 

おら!!!!!

 

あれなんですね、コンパイルせずに動かせちゃうんですね。

バイナリ化どうやるんだろう??

 

なるほど、$go build <file>ね。

f:id:syachineko:20211108232224p:plain

できました!

 

そのまま実行が

$ go run <file>

 

で、コンパイル&実行が

$ go build <file>

$ ./<file>

 

ちょっとだけ理解した。

以上