LoginSignup
0
0

More than 3 years have passed since last update.

クラスがないGo言語(golang)でstructとメソッドを使った計算してみた。(初心者向け)

Last updated at Posted at 2021-04-11

go言語(golang)でstructとメソッドを使った計算してみました。

現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発
https://www.udemy.com/course/go-fintech/learn/lecture/12003084#content
問題内容はこちらから↑

演習問題で『structとメソッドを使った3と4を足して7を出す』演習問題ありましたので、
コードを書いてみました。

まず自分の回答から

回答

package main

import (
    "fmt"
)

type Vertex struct{
    X, Y int
}

func (v Vertex) Plus() int{
    return v.X + v.Y
}

func main(){
    v := Vertex{3, 4}
    fmt.Println(v.Plus())
}

問題

package main

import (
    "fmt"
)

type Vertex struct{
    X, Y int
}


func main(){
    v := Vertex{3, 4}
}

解説

func (v Vertex) Plus() int{
    return v.X + v.Y
}

このような感じで任意の関数名(ここではPlus)とinteger(int)と返り値の含まれたコード(return)を
書いてみました。オブジェクト指向型言語だとクラスみたいなやつですね。。。
これをGo言語ではメソッドといいます。

※因みに、Go言語にはクラスがないみたいです。。。

ソースコードを全体ソースコードに入れると、

package main

import (
    "fmt"
)

type Vertex struct{
    X, Y int
}

func (v Vertex) Plus() int{
    return v.X + v.Y
}

func main(){
    v := Vertex{3, 4}
}

こんな感じです!!

紐付けしたコードを足したいので、
mainの箇所でfmt.Printlnで変数のvとPlus関数(任意の関数名)で

func main(){
    v := Vertex{3, 4}
    fmt.Println(v.Plus())
}

出力します!!

最終的な全体のソースコードが
回答になります!!!

感想

Javaのオブジェクト指向の理解をしていたので、
分かりやすかったです。
他言語をマスターしていると簡単かもしれませんね。

逆に初心者からするとここから第一の壁かもしれない。。。汗

~おまけ~

クラスとは...
プログラムを作るための設計図
Javaなどのオブジェクト指向の言語でよく出てきます。

参考サイト↓
https://wa3.i-3-i.info/word1120.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0