日本語でプログラミング!?
こんにちは、こんばんは、138nonoです。
就業中、ググっていたら、面白いものを見つけました。
↓GitHubでお世話になっています、mattnさんのブログより
最後の部分で定義をUTF-8で使えるとのこと
さっそく、試してみたコード
結果
ちゃんと、怒られずに実行できました。
プログラミングは体力を使うのでこう言った遊び心があると少しだけ紛れる気がします。
コロナでのリモートワークが推奨されており、弊社もリモートワークを考えていますが、私は家だと絶対に仕事しないので難しいところです。
配列に配列を代入はやってはいけない。
こんにちは、こんばんは、138nonoです。
以前、配列に配列を代入すると、両方の配列が値を変換されてしまう問題を紹介したいと思いますが、その原因が分かりました。
↓参考にさせて頂いたページ
どうやら、代入した時点で、値だけでなく、ポインタまで代入してしまい、一見、片方だけ触っているつもりが、両方の変数を触ってしまっていることになります。
見かけ状は変数が2個に見えるが、ポインタが一緒なので、実質的に1個の変数として扱われている状態です。
こちらの対処として、copy関数を使うことで、対策は可能です。
正しい例
結果
[3 4] [5 6] [5 6] [5 6] [1 6] [5 6]
配列xしか、変わっていないので、成功していますね。
細かい概念の理解がイマイチなので、もっと理解を深めないといけませんね。
現在、GoでPDFを扱う開発をさせて頂いていますが、日本語だとgofpdfが使えないので、なかなか難儀しております。
Goでの、二次元配列代入で躓いたところ(暗黙的代入)
こんにちは、こんばんは、138nonoです。
業務に辺り、多次元配列をよく使う場面があると思います。
二次元配列とは、簡単に言うと、配列の中に配列を格納するような機能です。
一連の処理が終わった後、配列を元の配列に代入し初期値に戻そうと思ったのですが、上手く値が戻せないと悩んでいました。
二次元配列の中身を確認したところ、配列がコピーされていました。
簡単なコードで、go playgroundで確認したところ次のような結果が得られました。
test1配列にtestAを代入後、test1に1を代入するだけの処理ですが、暗黙的にtestAにtest1の結果がコピーされています。
分かりやすく書くと
x = 1; y = 2; xとyの初期化
x = y この時点でxは2になっています
x = 3 xに3を直接代入
(y = x) 暗黙的にyにxが代入されている
goでの仕様なのか、配列は元々、そう言うものなのかは不明なので、分かる方がいれば是非、ご教授頂きたいです。
また、goでの仕様で配列は定数化出来ない(constは配列では使用不可)ので、初期値に戻すには、また直接、yに2を代入するしか、思いつきませんでした。
良い方法がまだまだ、あると思いますので、まだまだ自分の未熟さを痛感する今日この頃です。
Goでcsvファイルをキーにtxtファイルのデータを表示(連想配列)
こんにちは、こんばんは、138nonoです。
Go言語で、csvファイルをキーに、txtファイルのデータとキーが一致したら、表示させるプログラムを組んでみました。
csvファイル(キー)の中身
txtファイル(データ)の中身
textファイルの:以下のデータを表示させます。
Goの連想配列を利用したソースコードになります。
mainがこちらになります。
csvファイルを、文字列配列に格納する関数
txtファイルのデータ、mapに入れる関数
csvのキーと一致するmapを判定する関数
実行結果
以前、Go言語では、連想配列を使わず、構造体に入れた方が良いとされて明言しましたが、JAVAを学んでいた時、あまりmapを使わなかったので、Goで触ってみましたが、なかなか便利ですね
なお、今回はcsvの順番通りに表示させるように処理がされていますが、mapだけで使うときは、順番がランダムになるので注意して下さい。
まだ、プログラミングを学んで半年経たずの半端者ですが、皆さんと知識を共有できたらなと思います。
コードのここをこうした方が良いよなど、改善ポイントも絶賛受付中なので、ご教授お願い致します。
実質、PCの引っ越し(win8→win10) オマケに意外と知らない使えるショートカットキー
こんにちは、こんばんは、138nonoです。
今更ながら、ずっとwin10に変えたいと思い。
連休を利用し、OSのアップデートです
まず、win10用のプロダクトキーを購入
無料期間にやっておけばよかったと、ひたすら後悔です
バックアップ用のHDDも無いので、とりあえず、アップデート
1から環境構築です
とりあえず、欲しいソフトだけインストールして、次は開発出来るように環境を構築
Excelなどの、Officeが無くなったのはなかなかに痛い。
まぁ、家で使うことほとんどないから良いんですが、普通にショックは受けています...
ruby・Goもインストール
ちゃんとインストールされているか・動作するかのチェック
問題なさそうですね(´・ω・`)
バックアップせずに、アップデートするのは私ぐらいでしょうが、皆さんもお気をつけて
私はとりあえず、clip studioが動けばいいや位の感覚で行ってしまったので、なかなかに反省しなきゃですね
最後に、職場でも、使っている方が少なかった、なかなか使えるショートカットキーを紹介します。
Windowsキー + 矢印キーでwindowsを上の左側モニター見たいに、自動で分割表示してくれます。
4分割も出来るので、調べ物が多い時や、シングルモニターしか使えない場合に便利です。
もう1つとして、Alt + Tabキーで、windowsの切り替えが出来ます。
1つのwindowsを大きく表示したいかつ、調べたい時などに便利です。
サイドボタンがあるマウスで、Alt + Tabをマクロに設定しておけべ使いやすいです。
一部、Excelなどのソフトで付けない場合もあるので、気を付けて下さい。
ショートカットキーを利用して、より良いPC生活を
Goでは、map(連想配列)をあまり使わないのが、正解らしいです。
こんにちは、こんばんは、138nonoです。
Goを触り始めてから、早1ヶ月半程経ちます。
自社開発のシステムを少しづつやりながら、勉強をしております。
現在、使用している、おすすめの参考書があります。
実務を意識し、普通の参考書では、なかなか教えてくれないGo特有の書き方・心得など、書いてあります
↓それがこちらの参考書になります。
*弊社に置いてある、参考書は第1版なので、少し内容が変わっているかもしれないのは、ご了承下さい。
こちらの参考書の執筆者の一人であり、私もGitHubのsqlite3でお世話になったmattnさんもいます
この参考書の中に、[mapは避ける]との記載が
フィールドの値の関係が分かりやすくなり、typeをコンパイル時に検出できるなどのメリットがあります。
Goでは、型のある言語で可能な限り、struct(構造体)で方を定義するのが吉です。
また、メソッドを追加できるのも、利点の一つですね
mapを使用し、並行処理で同時アクセスした時、変な値を読み込んだり、プログラムをクラッシュしたりする可能性があります
mapを扱う時には、排他制御に気を付ける必要があります。
その際に、syncパッケージのRW Mutexを使うのが定石になります。
こちらの参考書を使用する場合は、ある程度の基礎が必要になります。
↑私はこちらの参考書である程度の基礎を学びました。
私もmapで書いたプログラムで、想像と違った値が入って苦労しました。
書く前に、この参考書に出会いたかったなと思います
もし、余裕があれば、今書いているプログラムを改善したいなと思います。
最近、mapの概念も理解してきた気がするので(気がするだけ)、スクリプト言語も触って見たいなと思う今日この頃です。
ちょっとだけ、C#を触ってみました。
こんにちは、こんばんは、nono138です。
用意されている、テンプレートを拝借して、少しだけデザインを変えてみたのですが、どうでしょうか?
PCとスマホのデザインが統一されていないのが怠惰な私らしいですね(笑)
いづれは、wordPrssで、専用ページを作りたいと目録んでいます
今日は髪を切る予約をしていたので、珍しく、朝からの活動です。
美容師の方は、話が上手で凄いですよね。
髪の毛を切って、少し爽やかになった気がします
お昼頃に、姉の旦那さんが姪っ子を見に来ました。
毎週、県外から大変ですよね
私は特に何もしていないのですが、子供を産むって本当に大変だなと、しみじみ思います。
そして、環境は作っていたのですが、ずっと放置していた、Unityを触ってみようとやっと動き出しました
とりあえず、起動してみると、Versionが変わってる
放置しすぎましたね(笑)
visual studio codeの使い方も調べないとですね。
覚える事が多くて、先が長そうだ...
今年中に簡単なゲームを一個でも作れたら良いなと考えています。
日本人は働き過ぎだと、思う今日この頃です。