忍者ブログ
ADMINWRITE
日々の覚え書き。 まだまだぴよぴよ。 最近は勉強過程をさらして恥かいてます。
[1]  [2]  [3
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

defer文、panic関数、recover関数をちょろっと勉強しました。
(日経ソフトウェア2月号を見ながら)

関数リテラルというものについても書いてありましたが、よくわからん。
そもそも土台となるプログラム言語が皆無なゆうひには、goを学ぶって結構きついのかも、と、いまさらながらに思ってみたり。

panic関数は明示的にエラーを起こすもの。
recover関数はエラーを拾ってくれるもの。
deferは最後に実行してくれるもの。

という認識を得ました。


try-catchってとても大切です。
どこでエラーが起こったかを知るのは、とっても大切です。
でも、書くのって結構面倒だと、なぁなぁにしていた私ですが(vcでエライ目にあった)、goの例外処理はすっきりしてるなーと思いました。

偉そうなことを言えるほど経験はないですが(><)
PR
こんばんは。
今日は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はこれがスタート地点です。がんばります。


 

カレンダー
01 2018/02 03
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
最新コメント
[12/13 sakushisyou]
[10/19 sakushisyou]
[08/26 ゆうひ]
[08/13 sakushisyou]
[11/23 ゆうひ]
最新トラックバック
プロフィール
HN:
ゆうひ
性別:
非公開
自己紹介:
はやく一人前になりたーい(謎)
成長していければいいな。。。
成長してるよね?
自称・メイドプログラマー(修行中)
料理の味付けはおおざっぱ。
バーコード
ブログ内検索
カウンター
クリック募金♪
世界樹の迷宮

Designed by 湯月   Material by ウタノツバサ
Copyright c [ ゆうひ堂本舗 ] All Rights Reserved.

忍者ブログ [PR]