NOTE : Go and Golang – are synonyms !
Rather than implicitly stating methodSignature() methodType
without any reserved keyword such as implement
for method we can write what I call "JavaScript-like callback" i.e. function that wraps interface signature(s) for more explicit interface implementation based upon an arbitrary named convention [2 example]
1 Example – consider initial pseudo_code (Go syntax) :
type someInterface interface {
methodSignature() methodType
}
// empty struct is still a valid entity to define a method
type yourStruct struct {
// struct field[s] (if any)
}
func (receiver yourStruct) methodSignature() methodType {
// method logic
}
2 Example – consider the following optimised pseudo_code (Go syntax) :
package main
import . "fmt"
type someInterface interface {
methodSignature() methodType
}
// 1/3 empty struct is still a valid entity to define a method
type yourStruct struct {
// struct field[s] (if any) : empty string would be still valid
someType string
}
// 3/3A : wrapper for more explicit interface implementation
func explicitInterface〳implements(interfaceReceiver someInterface){
interfaceReceiver.methodSignature()
}
// 2/3
func (structAccessor yourStruct) explicitInterface〳implements() /* 3/3B : <= as if written someInterface.methodSignature() but in Golang syntax-enforced fashion */ {
Println("Engineering name: " + structAccessor.someType)
}
Practical example (REPL) :
Runnable code example on REPLIT
Open shell instance and type:
go run explicitInterfaceImplementation.go
# <= this might change in the future so don't think hard, think smart !
If you found any typo, or think you can suggest a better solution, please leave a comment below . Stay tuned for more coming from Go . Cheers !
Top comments (0)