Skip to content

Instantly share code, notes, and snippets.

@ynwd
Last active November 25, 2020 02:36
Show Gist options
  • Save ynwd/28478521fee0608397ac516760bfe39d to your computer and use it in GitHub Desktop.
Save ynwd/28478521fee0608397ac516760bfe39d to your computer and use it in GitHub Desktop.
Super Easy Golang Method Explanation

Method dan Class

Konteks tulisan ini bisa dilihat di page sebelumnya:

Tulisan ini ditujukan untuk koder JavaScript, TypeScript, atau Java.

Beliau-beliau ini, biasanya sudah mempunyai "mental-model"-nya sendiri tentang bagaimana caranya membuat program menggunakan class,property, dan method-nya.

Class dan Method sederhana di JavaScript

Untuk penyegaran dan pembanding, mari kita ingat-ingat dulu penerapan penggunaan method di JavaScript.

Mari kita buat sebuah class bernama People yang mempunyai 2 method: getName() dan getAge().

Misalnya seperti ini:

class People {

    contructor(name, age) {
        this.name = name;
        this.age = age;
    }

    getName() {
        return this.name;
    }

    getAge() {
        return this.age;
    }
    
}

Cara menggunakannya gampang: buat instance class-nya dulu, baru panggil nama method-nya.

Contoh:

const people = new People("Pram", 4);
const name = people.getName();
const age = people.getAge();

Yang jadi pertanyaan:

  • Apakah di golang bisa seperti itu?

Class dan Method sederhana di Golang

Berita menyedihkan untuk para programmer JavaScript: di golang tidak ada class seperti di JS.

Lantas, bagaimana cara membuat method pada sebuah obyek?


Berita gembiranya, sebagai pengganti class, Golang menyediakan cara yang cukup simple dan mudah dipahami: struct

Perhatikan contoh berikut:

type People struct {
	Name string
	Age int
}

func (p People) getName() string {
	return p.Name
}

func (p People) getAge() string {
    return p.age
}

Cara menggunakannya:

people := People{"Pram",4}
name := people.getName()
age := people.getAge()

Tapi ternyata tidak hanya itu, method ala class ini ternyata bisa digunakan untuk type data yang bukan struct.

Perhatikan contoh berikut:

type Age float64

func (age Age) getAge() float64 {
    return float64(age)
}

Cara menggunakannya:

age := Age(4)
result := age.getAge()

What’s next:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment