Skip to main content

Do you support us?

Business address
0x1D24D8f27ea73ff604C7685246bdC6ae55bddaEF

How Function values are useful?

Golang is interesting language. If you wanna to play then start build your lego empire today. You know how to build homes, shops, trees etc. Someday, I will show you how to build a factories or companies so that our universe look like a real world. 

Like ordinary values assign to variables, in golang you can assign function values to your variables, because function values have own type.

package main
import (
"fmt"
)
func main() {
f:= square
fmt.Println(f(2))
f = underRoot
fmt.Println(f(4))
f = add
fmt.Println(f(2,2)) // error
}
func square(x int)int {
return x * x
}
func underRoot(x int)int {
return x*1/2
}
func add(x, y int)int {
return x+y
}
       Confused ?
               f = underRoot
               f = add // error
Are you confuse in these statement, if yes then square initially assign to f, which take one parameter as a argument. This tells f(2) that f hold square definition and 2 in our case value.
            4 [Ok , everything fine]
when underRoot assign to f. According to f definition , it take only one parameter as argument, which is again okay. But when add assign to f, now the compiler again check the definition of add function and compare with existing definition. In this case now whole
definition change which is not allowed. That why it produce error.

Warning :
Never return nil type value otherwise you received panic. You can't compare function values with other function value, function values are not used keys in maps.

You can also compare function value with nil. That Okay 
  

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

Enumerate

Golang provide  own enumerate method which is easy and very powerful. I will show you enumerate with in a sec. When i code enumerate in java, believe me i don't understand why it's used? So i never play from this card at that time, but recently when i start learning go. Now i used where it's used and why? Enumerate basically a counting method. Code   package main import ( " fmt " ) type Weekend int const ( Sunday Weekend = iota Monday Tuesday Wednesday Thursday Friday Saturday ) func main () { fmt. Printf ( " %d " ,Saturday) } If you remember adding color layer then you familiar from this code.  First i create my own type called weekend then used this type.  Iota-generator:   Things that confuse you Sunday Weekend = iota & Monday without value. Before we start Iota-generator first we understand monday without type or value         const ( c = 1 // c : 1 d      // d : 1 ) fmt.Pr