Golang method with pointer receiver [duplicate]

Your pointer to the struct should implement the Interface. In that way you can modify its fields.

Look at how I modified your code, to make it working as you expect:

package main

import (

type IFace interface {
    SetSomeField(newValue string)
    GetSomeField() string

type Implementation struct {
    someField string

func (i *Implementation) GetSomeField() string {
    return i.someField

func (i *Implementation) SetSomeField(newValue string) {
    i.someField = newValue

func Create() *Implementation {
    return &Implementation{someField: "Hello"}

func main() {
    var a IFace
    a = Create()

Leave a Comment