Vivasoft-logo

[ā§§.ā§Ŧ] āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻĢā§āϞ⧋ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ (Control Flow Structure)

[ā§§.ā§Ŧ.ā§§] āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύāĻžāϞ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ (Conditional Statement)

āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύāĻžāϞ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻļāĻ°ā§āϤ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϕ⧋āύ āϰāĻžāĻ¸ā§āϤāĻžā§Ÿ āϝāĻžāĻŦ⧇ āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻļāĻ°ā§āϤ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāϰ āϰ⧇āϜāĻžāĻ˛ā§āϟ true āĻ…āĻĨāĻŦāĻž false āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇āĨ¤

[ā§§.ā§Ŧ.ā§§.ā§§] if,else,else if

āĻļāĻ°ā§āϤ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āϕ⧋āύ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϤ⧇ “if, else, else if” āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāĻ–āĻžāύ⧇, āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύ true āĻšāϞ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇ āφāϰ false āĻšāϞ⧇ āĻ…āĻ¨ā§āϝ āφāϰ⧇āĻ•āϟāĻŋ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ –

				
					 if 7%2 == 0 {
       fmt.Println("7 is even")
   } else {
       fmt.Println("7 is odd")
   }

				
			

āφāωāϟāĻĒ⧁āϟ –

				
					     7 is odd
				
			

else āĻ›āĻžā§œāĻžāĻ“ if āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

				
					 if 8%4 == 0 {
       fmt.Println("8 is divisible by 4")
   }

				
			

āφāωāϟāĻĒ⧁āϟ –

				
					  8 is divisible by 4

				
			

āφāĻŽāϰāĻž āϚāĻžāχāϞ⧇ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύ⧇āϰ āφāϗ⧇ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻ“ āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ, āĻāχ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ scope āĻāϰ āϏāĻ•āϞ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāĻŦ⧇āĨ¤

				
					  if num := 9; num < 0 {
       fmt.Println(num, "is negative")
   } else if num < 10 {
       fmt.Println(num, "has 1 digit")
   } else {
       fmt.Println(num, "has multiple digits")
   }

				
			

āφāωāϟāĻĒ⧁āϟ –

				
					 9 has 1 digit
				
			

[ā§§.ā§Ŧ.ā§§.⧍] switch

āĻāĻ•āϟāĻž āĻ­ā§āϝāĻžāϞ⧁āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇, āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻāĻ•āϟāĻž āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ switch āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāĻ•āχ case āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻāĻ•āĻžāϧāĻŋāĻ• āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ āφāϞāĻžāĻĻāĻž āĻ•āϰāϤ⧇ āĻ•āĻŽāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤

āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ –

				
					switch optstatement; optexpression{
       case expression1: Statement..
       case expression2: Statement..
       ...
       default: Statement..
   }

				
			

āωāĻĻāĻžāĻšāϰāĻŖ –

				
					 package main

   import "fmt"

   func main() {
       day := "Friday"
       switch day {
       case "Monday":
           fmt.Println("It's Monday, the start of the week!")
       case "Tuesday":
           fmt.Println("It's Tuesday, still a long way to go!")
       case "Wednesday":
           fmt.Println("It's Wednesday, middle of the week!")
       case "Thursday":
           fmt.Println("It's Thursday, almost there!")
       case "Friday":
           fmt.Println("It's Friday, the end of the week!")
       default:
           fmt.Println("It's the weekend!")
       }
   }

				
			

āφāωāϟāĻĒ⧁āϟ-

				
					It's Friday, the end of the week!
				
			

[ā§§.ā§Ŧ.⧍] Loops

āϞ⧁āĻĒ āϝ⧇āϕ⧋āύ⧋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ˛ā§āϝāĻžāĻ‚āĻ—ā§ā§Ÿā§‡āĻœā§‡āϰ āĻāĻ•āϟāĻŋ āĻŽā§ŒāϞāĻŋāĻ• āĻŦāĻŋāώ⧟ āĨ¤ āϝāĻ–āύ āĻāĻ• āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ, āĻ­āĻŋāĻ¨ā§āύ āĻŦāĻž āĻāĻ•āχ āĻ­ā§āϝāĻžāϞ⧁ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻžāϰ āĻŦāĻžāϰ āϰāĻžāύ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻĒā§œā§‡ āĻ…āĻĨāĻŦāĻž āĻ…ā§āϝāĻžāϰ⧇, āĻ¸ā§āϞāĻžāχāϏ, āĻŽā§āϝāĻžāĻĒ⧇āϰ āĻŽāϤ āĻ•āĻžāϞ⧇āĻ•āĻļāύāϗ⧁āϞ⧋āϰ āĻ­ā§āϝāĻžāϞ⧁ āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāĻž āĻšā§Ÿ, āϤāĻ–āύ āϞ⧁āĻĒ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤ āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ•āĻŦāĻžāϰ āϞ⧁āĻĒ āϘ⧁āϰ⧇ āφāϏāĻžāϰ āĻĒāϰ āϞ⧁āĻĒ⧇āϰ āϭ⧇āϤāϰ⧇āϰ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āφāĻŦāĻžāϰ āϰāĻžāύ āĻ•āϰāĻžāϰ āĻĒā§‚āĻ°ā§āĻŦ⧇ āĻ•āĻŋāϛ⧁ āĻļāĻ°ā§āϤ⧇āϰ āϏāĻŽā§āĻŽā§āĻ–ā§€āύ āĻšāϤ⧇ āĻšā§ŸāĨ¤ āĻāχ āĻļāĻ°ā§āϤ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĨ⧇āϕ⧇ āĻĨāĻžāĻ•āϞ⧇, āϞ⧁āĻĒāϟāĻŋ āφāĻŦāĻžāϰ āϚāϞ⧇ āĻāĻŦāĻ‚ āύāĻž āĻĨāĻžāĻ•āϞ⧇ āϞ⧁āĻĒ āĻĨ⧇āϕ⧇ āĻŦā§‡ā§œ āĻšā§Ÿā§‡ āĻ¯ā§‡ā§Ÿā§‡ āĻĒāϰ⧇āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻšā§ŸāĨ¤Â 

Go-āϤ⧇, āĻŦāĻšā§āϞ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āϞ⧁āĻĒ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻ“ Iterator āĻ•āĻŋ-āĻ“ā§ŸāĻžāĻ°ā§āĻĄ āĻšāĻšā§āϛ⧇ – 

  • for
  • range

[ā§§.ā§Ŧ.⧍.ā§§] for āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ

āϏāĻŦāĻĨ⧇āϕ⧇ āĻŦ⧇āĻļā§€ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āϞ⧁āĻĒ āĻ¸ā§āĻŸā§‡āϟāĻŽā§‡āĻ¨ā§āϟ āĻšāĻšā§āϛ⧇ “for”. āĻāϕ⧇ āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϰ⧂āĻĒ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ –

  • While āϞ⧁āĻĒ⧇āϰ āĻŽāϤ – 
				
					i := 1
   for i <= 3 {
   	fmt.Println(i)
   	i = i + 1
   }

				
			

āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž āĻļ⧁āϧ⧁ āĻļāĻ°ā§āϤ⧇āϰ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻšā§āĻ›āĻŋāĨ¤ āϝāϤāĻ•ā§āώāĻŖ āύāĻž āĻāχ āĻļāĻ°ā§āϤ⧇āϰ āĻŦāĻžāχāϰ⧇ āϝāĻžāĻšā§āϛ⧇, āĻāχ āϞ⧁āĻĒ āϚāϞāϤ⧇āχ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤Â 

āφāωāϟāĻĒ⧁āϟ – 

				
					   1
   2
   3

				
			
  • āĻ•ā§āϞāĻžāϏāĻŋāĻ•/āĻŦ⧇āϏāĻŋāĻ• āϞ⧁āĻĒ⧇āϰ āϜāĻ¨ā§āϝ –
				
					 for j := 7; j <= 9; j++ {
       fmt.Println(j)
   }

				
			

āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ j := 7 āϕ⧇ āĻŦāϞāĻž āĻšā§Ÿ initialization, āϝ⧇āϟāĻž āϞ⧁āĻĒ āĻļ⧁āϰ⧁ āĻšāĻ“ā§ŸāĻžāϰ āĻĒā§‚āĻ°ā§āĻŦ⧇āχ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤ āĻāϰāĻĒāϰ, j <= 9 āĻšāϞ⧋ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāύ āĻŦāĻž āĻļāĻ°ā§āϤ, āϞ⧁āĻĒ āĻāχ āĻļāĻ°ā§āϤ āĻĒā§‚āϰāϪ⧇āϰ āϞāĻ•ā§āĻˇā§āϝ⧇āχ āϚāϞāĻŦ⧇āĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ Boolean āĻāĻ•ā§āϏāĻĒā§āϰ⧇āĻļāύ, āϝāĻž āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ•āĻŦāĻžāϰ āϞ⧁āĻĒ āϘ⧁āϰ⧇ āφāϏāĻžāϰ āĻĒāϰ āĻšā§‡āĻ• āĻšāĻŦ⧇ āĻāĻŦāĻ‚ true āĻšāϞ⧇ āϞ⧁āĻĒ āϚāϞāĻŽāĻžāύ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āϏāĻŦāĻļ⧇āώ⧇,  j++ āĻšāϞ⧋ increment, āϝ⧇āϟāĻž āĻĒā§āϰāĻ¤ā§āϝāĻ•āĻŦāĻžāϰ āϞ⧁āĻĒ āϚāϞāĻž āĻļ⧇āώ⧇ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻšāĻŦ⧇āĨ¤Â 

āφāωāϟāĻĒ⧁āϟāσ

				
					   7
   8
   9

				
			
  • āĻ…āϏ⧀āĻŽ āϞ⧁āĻĒ –
				
					 for {
       fmt.Println("loop")
       break
   }

				
			

āϕ⧋āύ⧋ āĻļāĻ°ā§āϤ āĻ›āĻžāĻĄāĻŧāĻžāχ āĻāχ āϞ⧁āĻĒ āĻ—āĻ āĻŋāϤ āĻāĻŦāĻ‚ āϞ⧁āĻĒ⧇āϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āϕ⧋āύ⧋ āĻšāĻ¸ā§āϤāĻ•ā§āώ⧇āĻĒ āĻ›āĻžā§œāĻž āĻāχ āϞ⧁āĻĒ āĻĨ⧇āϕ⧇ āĻŦ⧇āϰ āĻšāĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž break āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāχ āϞ⧁āĻĒ āĻĨ⧇āϕ⧇ āĻŦ⧇āϰ āĻšā§Ÿā§‡āĻ›āĻŋāĨ¤

āφāωāϟāĻĒ⧁āϟ – 

				
					 loop
				
			

[ā§§.ā§Ŧ.⧍.⧍] range

range āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ•āĻžāϞ⧇āĻ•āĻļāύ⧇āϰ āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟāϗ⧁āϞ⧋ āĻ•ā§āϰāĻŽāĻžāύ⧁āϏāĻžāϰ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āĻāϟāĻž āĻ…āύ⧇āĻ•āϟāĻž āĻŦ⧇āϏāĻŋāĻ• for āϞ⧁āĻĒ⧇āϰ āĻŽāϤāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻāχ āϝ⧇, āϏāĻžāϧāĻžāϰāĻŖ for āϞ⧁āĻĒ āϏāĻŦāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§Ÿ, āϝ⧇āĻ–āĻžāύ⧇ range āĻļ⧁āϧ⧁ āĻ…ā§āϝāĻžāϰ⧇, āĻ¸ā§āϞāĻžāχāϏ, āĻŽā§āϝāĻžāĻĒ āĻŦāĻž āĻšā§āϝāĻžāύ⧇āϞ⧇āϰ āĻŽāϤ āĻ•āĻžāϞ⧇āĻ•āĻļāύ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

āύāĻŋāĻšā§‡āϰ āωāĻĻāĻžāĻšāϰāϪ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻ¸ā§āϞāĻžāχāϏ⧇āϰ āϭ⧇āϤāϰ⧇ āĻĨāĻžāĻ•āĻž āϏāĻ‚āĻ–ā§āϝāĻžāϗ⧁āϞ⧋ sum āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ⧇ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ range āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĻ›āĻŋ – 

				
					nums := []int{2, 3, 4}
   sum := 0
   for _, num := range nums {
       sum += num
   }
   fmt.Println("sum:", sum)

				
			

āφāωāϟāĻĒ⧁āϟ – 

				
					 sum: 9
				
			

āĻ…ā§āϝāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āϞāĻžāχāϏ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ range āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ• āϧāĻžāĻĒ⧇ āχāύāĻĄā§‡āĻ•ā§āϏ āĻāĻŦāĻ‚ āĻ­ā§āϝāĻžāϞ⧁ āωāĻ­āϝāĻŧāχ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āωāĻĒāϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ›āĻŋāϞ āύāĻž, āϤāĻžāχ āφāĻŽāϰāĻž āĻāϟāĻŋāϕ⧇ Blank Identifier(_) āĻĻāĻŋāϝāĻŧ⧇ āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰ⧇āĻ›āĻŋāĨ¤Â 

āφāĻŽāϰāĻž āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏāĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžāχ –

				
					 for i, num := range nums {
       if num == 3 {
           fmt.Println("index:", i)
       }
   }

				
			

āφāωāϟāĻĒ⧁āϟ – 

				
					 index: 1
				
			

map-āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ range āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇ key āĻāĻŦāĻ‚ value āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§Ÿ –

				
					kvs := map[string]string{"a": "apple", "b": "banana"}
   for key, value := range kvs {
       fmt.Printf("%s -> %s\n", key, value)
   }

				
			

āφāωāϟāĻĒ⧁āϟ – 

				
					a -> apple
   b -> banana

				
			

āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āϚāĻžāχāϞ⧇ āĻļ⧁āϧ⧁ key āϟāĻžāĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ – 

				
					

   for key := range kvs {
       fmt.Println("key:", key)
   }
  

				
			

āφāωāϟāĻĒ⧁āϟ – 

				
					  
 key: a
 key: b