Skip to main content

Do you support us?

Business address
0x1D24D8f27ea73ff604C7685246bdC6ae55bddaEF

Methods Receiver as a reference


Hello, Welcome back; Today , we create new type of method receiver. When a function receive a value type parameter, on heap it will create copies of all the parameters, you pass. To avoid this problem, function receive reference type variable. Such as pointer, channels. Pointers have following advantages over variable. It Directly access, no copy , change in original value.

          Method Receiver Pointer:
            If you can write a code in C. Then you know, methods are not inherit C or Java Language. It's inherit from unix messages. 
                     func (c *Cal) Sum(y int) int{ // code }
            Cases :
       There're following cases that are exit 
1. If a method receiver and method argument both are T or *T type , it directly access.
2. If a method receiver is T type, however method argument as *T type. then  it need reference to access (&)
3. If a method receiver have *T and method argument as T type then dereference (*).

package main
import (
"fmt"
)
type Cal struct{
y int
}
func(c *Cal)Sum(y int) int{
return c.y -y
}
func main() {
// case 1
rec := Cal{3}
res := rec.Sum(2)
fmt.Println(res)
// case 2
r := Cal{4}
re := &r
fmt.Println(re.Sum(2))
//case 3
rc := Cal{5}
fmt.Println((&rc).Sum(2))
} 
 If you want to checkout the output, goto play link. If you remember my previous article it indirectly access and then set values, but in this example you only access via through pointers and also it's good approach. I hope you enjoy and learn more. Please share with your friends. Have a great day.
                        

Comments

Popular posts from this blog

Rosicrucian cipher

In 1513 Cornelius Agrippa introduce early form Rosicrucian Cipher in his books Occult of Philosophy. Geometric and simple substitution cipher are well known ciphers      Pigpen , Freemason, Napoleon and tic tac toe ciphers in which alphabets or symbols arrange in grids.  This is an anagram, "How to reconstruct a data " lets encode the message.       Pigpen cipher , Rosicrucian and Tic tac toe Cipher                      Thank you have a good day.    

Without this Agent , mission doesn't accomplish?

If you play military games such as Delta force , IGI Project , commandos etc . You familiar about in your team. Each member of team are unique in their skills. Some are snipers , short gun , hackers, communication officer. Now I will introduce golang special agent which are quite helpful in most of time.                 Variadic Function  will show in a moment! Variadic Function:             Variadic  Functions means a function that arguments varing. In variadic function ... called ellipsis.   package main import ( "fmt" ) func main() { values := []int{1,2,3} fmt.Println("Value[0]",seriesAdd(values[0])) fmt.Println("Total", seriesAdd(values...)) } func seriesAdd(x ...int)int{ var count int = 0 for _, v := range x{ count+= v } return count } Conditions :     Before passing to the variadic function array must be slice.               ...

Solve Juggle Pieces

Hello guys, Today is quite interesting topic "Juggle the pieces", this is elaborate after affine ciphers. Affine Ciphers are monoalphabetic ciphers, because every alphabet map against a number. Affine cipher introduce modulus operator. There are so many ciphers build on affine ciphers. Previous cipher Oh yeah, very well Atbash cipher also a good example of this category. Mathematical Statement:                 E(X) = D(E(X))-----------------------------------------------------(0)                 here E is a function that take parameter x and return encrypted text. Similar with D function but this is inverse function of E.                  E(x) = (ax+b) mod m--------------------------------------------(1)                   a, b are keys and m is size of alphabetic, while modules (mod) is an operator which help to...