Skip to main content

Do you support us?

Business address
0x1D24D8f27ea73ff604C7685246bdC6ae55bddaEF

How to Optimize our code efficiency.

In Golang structs are very powerful and common use. In previous article, I show you how to write a struct but this is not efficient way to write. 

type Point struct{ X,Y int }

point := Point{1,2}
                code.1.1 


There are two types struct literals :
                In first type, study above code. Programmer usually avoid this because it's difficult to remember about fields, it's should be in right order. Programmer use this in custom packages and smaller structs types.

                 In second type Programmer like very much , it's more powerful then previous type.
                 anim := GIF.gif{loopCount: nframes}
               
                 If any field value omit then that case value initialize with zero. Structs can also pass by reference [Pointers]. As you know, passing structs as a parameters with the help of pointers. Pointers create copy and use particular copy .

Structs Literals access through pointer.
                     p := &Point{1,2}
                      p := new (Point)
                      *p = Point{1,2}

Structs Comparable 
                 We can also compare structs . "==" & "!=" are common operators for comparison. Structs can also comparable with other types , in that case maps are very helpful.

Embed Field and Anonymous :

      Embed Field :
                  
package main
import ("fmt")
type Point struct{
X,Y int
}
type Circle struct{
Center Point // embed structs-1
Radius int
}
type Wheel struct{
Circle Circle //embed structs-2
Spokes int
}
func main(){
var w Wheel
w.Circle.Center.X =2
w.Circle.Center.Y =2
w.Circle.Radius =3
w.Spokes =3
fmt.Println(w)
} In embed field we can create a structure of any type that structure is the field of next struct. In Wheel or circle you can see this. Anonymous Field: type Circle struct { Point Radius int } type Wheel struct { Circle Spokes int } var w Wheel w.X = 8 // equivalent to w.Circle.Point.X = 8 w.Y = 8 // equivalent to w.Circle.Point.Y = 8 w.Radius = 5 // equivalent to w.Circle.Radius = 5 w.Spokes = 20 Anonymous Field similar like embed field but there 's a great difference. In anonymous field, field have a type but field don't have any name. That's why we called them anonymous field.
package main
import ("fmt")
type Point struct{
X,Y int
}
type Circle struct{
Point //anonymous case#1
Radius int
}
type Wheel struct{
Circle //anonymous case#2
Spokes int
}
func main(){
var wheel Wheel
wheel.Circle.Point.X =4
wheel.Circle.Point.Y =4
wheel.Circle.Radius =4
wheel.Spokes =4
fmt.Println(wheel)
w:= Wheel{Circle{Point{4,4},3},2}
fmt.Printf("%v",w)
}
Because ‘‘anonymous’’ fields do have implicit names, you can’t have two anonymous fields of the same type since their names would conflict. And because the name of the field is implicitly determined by its type, so too is the visibility of the field. You can follow any convention, which you like. This is just a example, upcoming articles . I will discuss you, Why Composition is so important?


           

                   
                   

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.    

Life is all about decisions and repeat your routine

Life is all about Decisions and repeat our routine is an excellent idea which i show you within a moment. Everyday we take so many decisions based on environment conditions, circumstances. Each decision based on cause and effect philosophy. Programmer are wizards who create own world with data and structures. Without data or structure our world is nothing. Conditions: Conditions help us to take decision based under certain circumstances, such as if a number divisible by 2 at least two times then it's said to be double even. package main import ( "fmt" ) func main() { const divisible =2 var even int = 4 if even%divisible == 0 { n := even/divisible n /= divisible if n ==1 { fmt.Println("Doubly Even")  } }   } If you're a developer then you you know this code quite different from other languages syntax. In most languages, you see like this "if (condition)". Yeah it's different but this language compilati...

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.               ...