Skip to main content

Do you support us?

Business address
0x1D24D8f27ea73ff604C7685246bdC6ae55bddaEF

Compose complex types

Welcome everybody, I'm happy after reading comments which you post on subreddits. Thankyou. Today, i will write my article on compose complex types but in end i give you a simple task, can you do that?

Types:
     In golang we create types in two ways
      1.       type-keyword  name-keyword  datatype
               type                Meter           float64
      2.     by using struct which you are familiar about.

   Let's start with simple example, so that we can understand how to do that.

Problem: I have two CEO, one CEO is elon musk and other is mark zuckerberg. Both CEO are also person and own attributes such as name or company. 
   If you know Object oriented approach you might think like this person is the person class and ceo is derived class. However this is not pure object oriented language, so that is not a solution. How can i solve? 
Oh Yeah, I build a struct type person, that hold all the attributes which person have. But the question what i do with ceo?
 I hope you know embed struct and anonymous structs concepts if, yes then problem solve. If you don't know then i will teach you with example
          type person struct{
                      name string
          }
          type ceo struct {
              p  Person  // embed struct
          }
      If you write another struct in which first struct parameter is the part of second struct then it's embed struct. 
           type person struct{
                      name string
          }
          type ceo struct {
              Person  // anonymous struct
          }
    Without parameter ceo struct called anonymous strut.
<Code/>
               package main

                 import (
               "fmt"
                )
         
              type Person struct{
        name string
       company_own string
        }
       type CEO struct{
   Person
      }
      var ceo CEO

      func(c *CEO)Description(){
  switch c.name {
case "Elon":
   fmt.Println("Name:",c.name,"\t","Company:",c.company_own,"\t","He is an                                innovator ")
break;
case "Mark":
   fmt.Println("Name:",c.name,"\t","Company:",c.company_own,"\t","He work                                 on social media ")
break;

}
    }
func main() {

c := &ceo
c.name = "Elon"
c.company_own = "Tesla, SpaceX"
c.Description()

owner:= CEO{Person{"Mark","Facebook"}}
owner.Description()
}
If you are checkout how this program work Hola
         This is very useful at package level variables , which i discuss upcoming articles. 
Question : You can do this example by pointers. Thankyou, 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.    

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