[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
(日経ソフトウェア2月号を見ながら)
関数リテラルというものについても書いてありましたが、よくわからん。
そもそも土台となるプログラム言語が皆無なゆうひには、goを学ぶって結構きついのかも、と、いまさらながらに思ってみたり。
panic関数は明示的にエラーを起こすもの。
recover関数はエラーを拾ってくれるもの。
deferは最後に実行してくれるもの。
という認識を得ました。
try-catchってとても大切です。
どこでエラーが起こったかを知るのは、とっても大切です。
でも、書くのって結構面倒だと、なぁなぁにしていた私ですが(vcでエライ目にあった)、goの例外処理はすっきりしてるなーと思いました。
偉そうなことを言えるほど経験はないですが(><)
今日はswitchについてちまちまやりました。ちまー。
-----お題-------
偶数と奇数を判定する。
switch文で!
-----------------
微妙に苦労しつつ、なんとか作成。。。。
package main
func main() {
Calculation(29)
}
func Calculation(c int) {
switch {
case c % 2 == 0:
println("偶数です")
case c % 2 == 1:
println("奇数です")
}
}
29はもちろん奇数なので、出力も、
奇数です
と、表示されました。
breakを書かなくてもいいのがなんだか新鮮な気がしました(書いても良い)。
caseのあとの":"を忘れずに書かないとね
"fallthrough"を書くと、breakされないらしいっす。
余談ですが、おデルちゃん2号のUbuntuさんで、C言語がコンパイルできることを知りました。
なんかちょっとズキューン
昨日の話の続き。
GOの課題が師匠からでましたので、
師匠に解説してもらって作りました。
(自力ではない)
---☆おだい---------------------
1から10まで足して、55を表示するプログラムを作成する。
rangeと配列を使う。
-------------------------------------
rangeはforeach(C#、他)みたいなもんらしいです。
で、作ったプログラムが、これ↓。
先にいっときますが、エラーでます。
package main
import (
"fmt"
)
func main() {
d := [10]int{1,2,3,4,5,6,7,8,9,10}
sum := 0
for i , v := range d {
sum += v
}
fmt.Printf("合計 %v\n",sum)
}
コピペしたら、インデントがぐっちゃぐちゃになってしまった。。。。
で、エラーの内容は、
i declared and not used
って、でました。
悩むこと○分。
for i , v := range d ~
のiが、使ってないから消せよ!っていうことらしいとわかりました。
VC++だったら警告ででるのにぃ。
というわけで、修正です↓
package main
import (
"fmt"
)
func main(){
d := [10]int{1,2,3,4,5,6,7,8,9,10}
sum := 0
for _ , v := range d {
sum += v
}
fmt.Printf("合計 %v\n",sum)
}
"i"が"_"に置き換わりました。
("_"は、ブランク識別子という御名前だそうです)
これで、エラーは消えて、無事に実行できました。結果は、
合計 55
と、表示されました!!
わーい。
あ、もちろん、最初のソースでも、iをどこかで使えばエラーは出ません。
ははぁ~。
一つ賢くなりました。
rangeから値をもらう変数が2つあるというのが、微妙に気持ちわるい。。。
(しかし、便利)
今回の教科書は、またしても日経ソフトウェアです。2010年8月号を参考にしていきます。
では、最初に……。
ごめんなさいm(_ _)m
ゆうひは思いっきり勘違いしていました。
なんと、go言語は、
func xxx() {
……
}
という風にカッコを持ってかないと、コンパイルエラーが起こるそうです。
(ほんとにえらーになった)
つまり、ゆうひがここで書いていた、
func xxx()
{
……
}
という書き方は、ダメ。
(うわぁ、勘違い・・・すんません)
スタイル統一に持ってきたか、五尾厳吾。
おせっかいでインデントをきれいにするのではなく、決まりにしたのかぁ。
へー。
さて、衝撃を受けたところで。
何か簡単なものを作ってみるべし。
さて。
Go言語の実行です。
今度こそ64ビット環境なので、6○みたいなコマンドで大丈夫です。
hello.goを用意します。
package main
import "fmt"
func main() {
fmt.Printf("hello, world!世界!\n")
}
日本語も混ぜてみました。
自分が書いた記事のこれを参考に実行すると!!
hello, world!世界!
でた。
でたーーー!!
無事に実行終了です。
長かった。。。
ブログを読み返すと、7月ぐらいからずっとgo言語~!って言っているし。
5か月かかったのか。
当時はまだ夏で、一人暮らしで(今は実家暮らし)、暑くて暑くて大変だったなーーー。
なんにしろ、よかった
Goはこれがスタート地点です。がんばります。
03 | 2024/04 | 05 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
成長していければいいな。。。
成長してるよね?
自称・メイドプログラマー(修行中)
料理の味付けはおおざっぱ。