Recent Posts

Go - Interface value

Real type of an interface variable is decided dynamatically Need be careful when comparing interface, panic will occur when real type is not comparable ...

Go - Interface Satisfaction - 2

When a type value assign to a variable, it can call method declared with type value and pointer When a type pointer assign to a variable, it can call...

Go - Interface Satisfaction - 1

A function declared with type (not a pointer), can call method by type value. Can use (&t) to call method by address as well When a function d...

Go - Interface Contracts

Don't need implement interface, only method is enough Compile error if signature is wrong,  Although don't need declare "implements", but sti...

Go - encapsulation

Access control: upper case ecported to diiferent package It means the unit of encapsulation is package Difference Ex. type A int, can’t be encapsul...

Go - Method Values

Can assign method to a variable Ex. M = s.methodname; M() Can define func signature and assign implementation later Status will follow methods ...

Go - Methods - Pointer Receiver

Declare Method Method and Function can be the same name Method and Field can not have the same name Can declare another method name in the sa...

Go - Functions - 4

Must declare a func before let func call itself recursively. Otherwise compile error Loop will reuse variable address, so a new variable must be dec...

Go - Functions - 3

Can declare function without name. Called anonymous function. How client know it needs return value? => Because function signature has conc...

Go - Functions - 2

Modifications to the parameter copy don't affect the caller except pointer, slice, map, function, channel A function declaration without a body indica...

Go - Functions - 1

Declare func name(parameter-list) return-list {...} Parameter list type can be declared only once if types are the same func test(a string, b string,...

Go - JSON

ex. var p = Person{}; json.Marshal(p) json.marshal return byte slice contains long string wuthout extraneous Ex.data, err = json.MarshalIndent...

Go - Structs - 7

Name and visibility is implicitly determined by its type Outer struct type gains not just the fields of the embedded type but its methods too