Vivasoft-logo

[ā§Ģ.ā§§] new(), make() āĻĻāĻŋā§Ÿā§‡ āĻŽā§‡āĻŽāĻ°āĻŋ āĻ…ā§āĻ¯āĻžāĻ˛ā§‹āĻ•ā§‡āĻļāĻ¨ : (Memory allocation using new() & make())

[ā§Ģ.ā§§.ā§§] new()

āĻāĻ•āĻŸāĻž āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻŋ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻļā§āĻ°ā§āĻ¤ā§‡ āĻāĻ•āĻŸāĻž āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ āĻāĻ° āĻļā§āĻ§ā§ āĻŽāĻžāĻ¤ā§āĻ° āĻĄāĻžāĻŸāĻž āĻŸāĻžāĻ‡āĻĒ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ‡āĻœ āĻœāĻžāĻ¨āĻŋ; āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻžāĻ° āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻ•āĻŋ āĻšāĻŦā§‡ āĻ¤āĻž āĻŦāĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°āĻ›āĻŋ āĻ¨āĻž (āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ¸āĻŦāĻžāĻ‡ nil/zero āĻĨāĻžāĻ•āĻŦā§‡), āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻ¸āĻžāĻ‡āĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻŦā§‹āĨ¤ āĻāĻ°āĻ•āĻŽ āĻ•ā§‡āĻ‡āĻ¸ā§‡ āĻ†āĻŽāĻ°āĻž new() āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤

new() āĻšāĻ˛ā§‹ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ˛ā§āĻŸ-āĻ‡āĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨, āĻ¯ā§‡āĻŸāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻĄāĻžāĻŸāĻž āĻŸāĻžāĻ‡āĻĒ āĻāĻ° āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻž zero / nil  āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻ¯ā§āĻ•ā§āĻ¤ āĻāĻ˛ā§‹āĻ•ā§āĻ¯āĻžāĻŸā§‡āĻĄ āĻŽā§‡āĻŽāĻ°āĻŋ āĻĒāĻžāĻŦā§‹ āĨ¤ āĻāĻ° āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸

				
					   func new(Type) *Type
				
			

āĻāĻ‡ āĻŽā§‡āĻŽāĻ°āĻŋ āĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ dereferencing ( āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ āĻāĻ° āĻ†āĻ—ā§‡ * āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°) āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ–ā§‡ā§ŸāĻžāĻ˛ āĻ•āĻ°āĻŋ –

				
					 p := new(int) // allocate memory for an int using new() function

   // Before assigning any value
   fmt.Println("Value of p:", *p)
   fmt.Println("Memory address of p:", p)

   *p = 10 // assign a value to the variable pointed by the pointer

   // after assigning value
   fmt.Println("Value of p:", *p)
   fmt.Println("Memory address of p:", p)

				
			

āĻ•ā§‹āĻĄā§‡āĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ –

				
					Value of p: 0
   Memory address of p: 0xc0000140f8
   Value of p: 10
   Memory address of p: 0xc0000140f8

				
			

āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻĄāĻžāĻŸāĻž āĻŸāĻžāĻ‡āĻĒ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤āĻžāĻŽ āĻāĻŦāĻ‚ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻāĻ° āĻ¸āĻžāĻ‡āĻœÂ  āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ­āĻžāĻŦā§‡ āĻœāĻžāĻ¨āĻž āĻĨāĻžāĻ•āĻž āĻ˛āĻžāĻ—āĻŦā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄ āĻŸāĻž āĻ–ā§‡ā§ŸāĻžāĻ˛ āĻ•āĻ°āĻŋ –

āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ – 

				
					 newArray := new([5]int)
   fmt.Println("length: ", len(newArray), " capacity: ", cap(newArray))
   newArray[0] = 10 //assigning a value to the first element
   newArray[4] = 20 //assigning a value to the last element
   fmt.Println("newArray: ", newArray)

				
			
				
					   length:  5  capacity:  5
   newArray:  &[10 0 0 0 20]
				
			

āĻ–ā§‡ā§ŸāĻžāĻ˛ āĻ•āĻ°āĻŋ, āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻžāĻ‡āĻœ āĻ•āĻ°āĻž newArray āĻāĻ° āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° derefernce āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻ¨āĻž (āĻ•āĻžāĻ°āĻŖ āĻ•āĻŋ?) 

ā§§āĻŽ āĻāĻŦāĻ‚ āĻļā§‡āĻˇ āĻ‡āĻ¨āĻĄā§‡āĻ•ā§āĻ¸ā§‡ āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻ…ā§āĻ¯āĻžāĻ¸āĻžāĻ‡āĻ¨ āĻ•āĻ°ā§‡ āĻĻā§‡ā§ŸāĻž āĻšā§Ÿā§‡āĻ›ā§‡, āĻŦāĻžāĻ•āĻŋ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ—ā§āĻ˛ā§‹ 0 āĻ‡ āĻ°ā§Ÿā§‡ āĻ—āĻŋā§Ÿā§‡āĻ›ā§‡āĨ¤Â 

āĻĄāĻžāĻŸāĻž āĻŸāĻžāĻ‡āĻĒ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ Struct āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ˛ā§‡ Struct āĻāĻ° āĻ¸āĻžāĻ‡āĻœ āĻ“ āĻ†āĻ—ā§‡ āĻĨā§‡āĻ•ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§‡ āĻĻā§‡ā§ŸāĻž āĻ˛āĻžāĻ—āĻŦā§‡ – 

				
					 type Vertex struct {
       X int
       Y int
   }
   newStruct := new([5]Vertex)
   fmt.Println("length: ", len(newStruct), " capacity: ", cap(newStruct))
   // accessing the 1st element
   newStruct[0].X = 1
   newStruct[0].Y = 10
   // accessing the last element
   newStruct[4].X = 5
   newStruct[4].Y = 10
   fmt.Println("newStruct: ", newStruct)

				
			

āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ – 

				
					  length:  5  capacity:  5
   newStruct:  &[{1 10} {0 0} {0 0} {0 0} {5 10}]
				
			

āĻāĻ–āĻžāĻ¨ā§‡ Struct āĻāĻ° āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšā§Ÿā§‡āĻ›ā§‡āĨ¤ āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻ•āĻ°ā§‡ āĻļā§āĻ§ā§ Struct āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯āĻžā§Ÿ –

				
					 newStruct := new(Vertex)
   // accessing the element
   newStruct.X = 1
   newStruct.Y = 10
   fmt.Println("newStruct: ", newStruct) // output: &{1 10}

				
			

[ā§Ģ.ā§§.ā§¨] make()

āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ†āĻ°ā§‡āĻ•āĻŸāĻž āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻŋāĻƒÂ 

  • āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸ā§āĻ˛āĻžāĻ‡āĻ¸ / map / āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻ¨āĻŋā§Ÿā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›āĻŋāĨ¤
  • āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻĻāĻŋā§Ÿā§‡ āĻāĻĻā§‡āĻ°āĻ•ā§‡ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻžāĻ‡āĻœ āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻŦā§‹ (āĻ¨āĻ¤ā§āĻŦāĻž nil / zero āĻĻāĻŋā§Ÿā§‡ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻžāĻ‡āĻœ āĻšāĻŦā§‡)
  • āĻļā§āĻ°ā§āĻ¤ā§‡ āĻāĻĻā§‡āĻ° āĻ¸āĻžāĻ‡āĻœ, āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ āĻ•āĻ¤ āĻšāĻŦā§‡ āĻ¤āĻž āĻ†āĻŽāĻ°āĻž āĻœāĻžāĻ¨āĻ˛ā§‡āĻ“, āĻĒāĻ°ā§‡ āĻ¤āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻāĻĻā§‡āĻ° āĻ¸āĻžāĻ‡āĻœ, āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ āĻĄāĻžāĻ‡āĻ¨āĻžāĻŽāĻŋāĻ•ā§āĻ¯āĻžāĻ˛āĻŋ āĻĒāĻ°āĻŋāĻ°ā§āĻ¤āĻ¨ āĻšāĻŦā§‡)

āĻāĻ°āĻ•āĻŽ āĻ…āĻŦāĻ¸ā§āĻĨāĻžā§Ÿ āĻ†āĻŽāĻ°āĻž make() āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤

 

make() āĻāĻ° āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ –

				
					   func make(t Type, size ...IntegerType) Type
				
			

āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ¨ā§€ā§Ÿ āĻŦāĻŋāĻˇā§Ÿ –  new() āĻāĻ° āĻ¸āĻžāĻĨā§‡ make()  āĻāĻ° āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻšāĻ˛ā§‹, make() āĻŽā§‡āĻŽāĻ°āĻŋ āĻāĻĄā§āĻ°ā§‡āĻ¸ āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ¨āĻž āĻ•āĻ°ā§‡, āĻ¯ā§‡ āĻĄāĻžāĻŸāĻž āĻŸāĻžāĻ‡āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ›āĻŋ, āĻ¤āĻžāĻ‡ āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°āĻ›ā§‡, āĻ¸āĻžāĻĨā§‡ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻ—ā§āĻ˛āĻžāĻ“ āĻ†āĻ¸āĻ›ā§‡āĨ¤ āĻ¤āĻžāĻ° āĻŽāĻžāĻ¨ā§‡ āĻāĻ–āĻžāĻ¨ā§‡ āĻ“āĻ‡ āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ āĻāĻ° āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ° dereference āĻ•āĻ°āĻ¤ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻ¨āĻžāĨ¤Â 

[ā§Ģ.ā§§.ā§¨.ā§§] make()- āĻ¸ā§āĻ˛āĻžāĻ‡āĻ¸

āĻ¸ā§āĻ˛āĻžāĻ‡āĻ¸ āĻ¨āĻŋā§Ÿā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ˛ā§‡ āĻāĻ° āĻ¸āĻžāĻ‡āĻœ āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻĒāĻļāĻ¨āĻžāĻ˛ ā§Šā§Ÿ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ āĻ“ āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻžāĻ‡āĻœ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ¤āĻŦā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸āĻžāĻ‡āĻœ, āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ ā§¨ āĻŸāĻžāĻ‡ āĻ‡āĻ¨ā§āĻŸāĻŋāĻœāĻžāĻ° āĻšāĻŦā§‡āĨ¤Â 

āĻ•ā§‹āĻĄā§‡Â  āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ• –

				
					sliceMake := make([]int, 3, 5)
   fmt.Println("size: ", len(sliceMake), "||capacity:", cap(sliceMake))
   //size:3 || capacity: 5
   fmt.Println("full sliceMake:", sliceMake)                           
   //[0 0 0]
   sliceMake[0] = 10                           
   //accessing and assigning the 1st element of the slice
   fmt.Println("1st index value:", sliceMake[0])
   //output: 10
   fmt.Println("3rd index value:", sliceMake[2])
   //output: 0
   fmt.Println("5th index value:", sliceMake[4])
   //error: trying to access out of size index

				
			

āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ –

				
					

   size:  3 || capacity:  5
   full sliceMake: [0 0 0]
   1st index value: 10
   3rd index value: 0
   panic: runtime error: index out of range [4] with length 3


 
				
			

āĻāĻ–āĻžāĻ¨ā§‡ ā§Šā§Ÿ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻŸāĻž āĻ•āĻŋāĻ¨ā§āĻ¤ā§ 0 āĻ°ā§Ÿā§‡ āĻ—āĻŋā§Ÿā§‡āĻ›ā§‡, āĻ•ā§‡āĻ¨āĻ¨āĻž āĻ†āĻŽāĻ°āĻž āĻļā§āĻ§ā§ āĻŽāĻžāĻ¤ā§āĻ° ā§§āĻŽ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻŸāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻŦāĻžāĻ•āĻŋ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ—ā§āĻ˛āĻž 0 āĻĻāĻŋā§Ÿā§‡ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻžāĻ‡āĻœāĻĄ āĻšā§Ÿā§‡ āĻ›āĻŋāĻ˛ā§‹āĨ¤

slice āĻāĻ° āĻ¸āĻžāĻ‡āĻœ (ā§Š) āĻāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡āĻ°(ā§ĢāĻŽ āĻ‡āĻ¨āĻĄā§‡āĻ•ā§āĻ¸) āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ¤ā§‡ āĻšāĻžāĻ“ā§ŸāĻžā§Ÿ error āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤

āĻāĻ‡ sliceMake āĻāĻ° āĻ¸āĻžāĻ‡āĻœ, āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ āĻĄāĻžāĻ‡āĻ¨āĻžāĻŽāĻŋāĻ•ā§āĻ¯āĻžāĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ –

				
					 sliceMake = append(sliceMake, 1)
   sliceMake = append(sliceMake, 2)
   sliceMake = append(sliceMake, 3)
   fmt.Println("size:", len(sliceMake), "||capacity:", cap(sliceMake))
   //size:6||capacity:10
   fmt.Println("5th index value:", sliceMake[4])
   //trying to access the 5th index value after increment
   fmt.Println("full sliceMake: ", sliceMake)
   //[10 0 0 1 2 3]
				
			

ā§Š āĻŸāĻž element append āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ –

				
					 size: 6 ||capacity: 10
   5th index value: 2
   full sliceMake:  [0 0 0 1 2 3]
				
			

āĻāĻ–āĻžāĻ¨ā§‡ āĻ˛āĻ•ā§āĻˇā§āĻ¯āĻ¨ā§€ā§ŸāĻƒ āĻ¸ā§āĻ˛āĻžāĻ‡āĻ¸ length āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻĄāĻžāĻ‡āĻ¨āĻžāĻŽāĻŋāĻ•ā§āĻ¯āĻžāĻ˛āĻŋ āĻŦāĻžā§œāĻŋā§Ÿā§‡ ā§Ŧ āĻ•āĻ°āĻ˛āĻžāĻŽ, āĻ¤āĻ–āĻ¨ āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ ā§§ā§Ļ

āĻāĻ°āĻ•āĻŽ āĻ­āĻžāĻŦā§‡, 

āĻ¯āĻ–āĻ¨ āĻ¸āĻžāĻ‡āĻœ = ā§§ā§§, āĻ¤āĻ–āĻ¨ āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ = ā§¨ā§Ļ

āĻ¯āĻ–āĻ¨ āĻ¸āĻžāĻ‡āĻœ = ā§¨ā§§, āĻ¤āĻ–āĻ¨ āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ = ā§Ēā§Ļ

āĻ¯āĻ–āĻ¨ āĻ¸āĻžāĻ‡āĻœ = ā§Ēā§§, āĻ¤āĻ–āĻ¨ āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ = ā§Žā§Ļ

āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸ā§āĻ˛āĻžāĻ‡āĻ¸ āĻāĻ° āĻļā§āĻ°ā§āĻ° āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ āĻ›āĻŋāĻ˛ā§‹ ā§Ģ, āĻ¤āĻ–āĻ¨ āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ = ā§Ģ, ā§§ā§Ļ, ā§¨ā§Ļ, ā§Ēā§Ļ, ā§Žā§Ļ, ā§§ā§Ŧā§Ļâ€ĻāĻāĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšā§Ÿā§‡āĻ›ā§‡, āĻ¯āĻĻāĻŋ ā§Ģ āĻ¨āĻž āĻšā§Ÿā§‡ ā§Š āĻšāĻ¤ā§‹, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ = ā§Š, ā§Ŧ, ā§§ā§¨, ā§§ā§Ž, ā§Šā§Ŧ, â€Ļâ€Ļ.āĻāĻ‡ āĻšāĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¤ā§‹āĨ¤

[ā§Ģ.ā§§.ā§¨.ā§¨] make()- map

map āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻ‡āĻœ, āĻ•ā§āĻ¯āĻžāĻĒāĻžāĻ¸āĻŋāĻŸāĻŋ āĻĻā§‡ā§ŸāĻž āĻ˛āĻžāĻ—ā§‡ āĻ¨āĻž, āĻ•āĻžāĻ°āĻŖ map āĻļā§āĻ°ā§āĻ¤ā§‡āĻ‡ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻŽā§‡āĻŽāĻ°āĻŋ āĻ¨āĻŋāĻœ āĻĨā§‡āĻ•ā§‡ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨āĻŋā§Ÿā§‡ āĻ¨ā§‡ā§Ÿ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻļā§āĻ°ā§āĻ¤ā§‡ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ¨ā§‡ā§ŸāĻž āĻŽā§‡āĻŽāĻ°āĻŋāĻ° āĻŦā§‡āĻļāĻŋ āĻŽā§‡āĻŽāĻ°āĻŋāĻ“ āĻĄāĻžāĻ‡āĻ¨āĻžāĻŽāĻŋāĻ•ā§āĻ¯āĻžāĻ˛āĻŋ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ–ā§‡ā§ŸāĻžāĻ˛ āĻ•āĻ°āĻŋ –

				
					mapMake := make(map[string]int)
   fmt.Println("map size(initially):", len(mapMake)) // output: 0
   mapMake["one"] = 1
   mapMake["two"] = 2
   mapMake["three"] = 3
   fmt.Println("Full map:", mapMake) //output: [one:1 three:3 two:2]

				
			

āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ –

				
					map size(initially): 0
   Full map: map[one:1 three:3 two:2]

				
			

āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸āĻžāĻ‡āĻœ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻžāĻ‡āĻœ āĻ•āĻ°āĻ›āĻŋ āĻ¨āĻž, āĻ¤āĻžāĻ‡ āĻ¯āĻ¤ āĻ—ā§āĻ˛āĻž āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ¨āĻŋāĻšā§āĻ›āĻŋ, map āĻāĻ° āĻ¸āĻžāĻ‡āĻœ āĻ¤āĻ¤āĻ‡ āĻšāĻŦā§‡āĨ¤

āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻšāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻžāĻ‡āĻœ(āĻ…āĻĒāĻļāĻ¨āĻžāĻ˛) āĻ†āĻ—ā§‡ āĻĨā§‡āĻ•ā§‡ āĻŦāĻ˛ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ –

				
					mapMake := make(map[string]int, 2)
   fmt.Println("map size(before allocating):", len(mapMake)) // output: 0
   // after allocating less number of elements as size of the map
   mapMake["one"] = 1
   fmt.Println("map size(allocation less than size):", len(mapMake)) //output: 1
   mapMake["two"] = 2
   
   // after allocating equal number of elements as size of the map
   fmt.Println("map size(equal number of allocation):", len(mapMake)) //output: 2

   // allocating more than the size of the map
   mapMake["three"] = 3
   fmt.Println("map size(allocating more than size):", len(mapMake)) //output: 3
				
			

āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ –

				
					   map size(before allocating): 0
   map size(allocation less than size): 1
   map size(equal number of allocation): 2
   map size(allocating more than size): 3



				
			

āĻāĻ–āĻžāĻ¨ā§‡ āĻŽāĻœāĻžāĻ° āĻŦā§āĻ¯āĻĒāĻžāĻ° āĻšāĻ˛ā§‹, āĻ†āĻŽāĻ°āĻž āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ¸āĻžāĻ‡āĻœ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻžāĻ‡āĻœ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ˛ā§‡āĻ“ āĻ•ā§‹āĻ¨ā§‹ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻ¸āĻžāĻ‡āĻ¨ āĻ¨āĻž āĻ•āĻ°āĻžā§Ÿ, āĻāĻ° āĻ¸āĻžāĻ‡āĻœ 0 āĻ‡ āĻ°ā§Ÿā§‡ āĻ—ā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ¯āĻ¤āĻ—ā§āĻ˛āĻž āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ…ā§āĻ¯āĻžāĻ¸āĻžāĻ‡āĻ¨ āĻ•āĻ°āĻ›āĻŋ map āĻāĻ° āĻ¸āĻžāĻ‡āĻœ āĻ¤āĻ¤āĻ‡ āĻšāĻšā§āĻ›ā§‡āĨ¤

[ā§Ģ.ā§§.ā§¨.ā§Š] make() – āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛Â 

make() āĻĻāĻŋā§Ÿā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ declaration āĻāĻ° āĻ¸āĻŽā§Ÿ āĻ†āĻŽāĻ°āĻž ā§¨ā§Ÿ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°(āĻ…āĻĒāĻļāĻ¨āĻžāĻ˛) āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻāĻ° buffer_size āĻĢāĻŋāĻ•ā§āĻ¸āĻĄ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ, āĻ†āĻ° āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻĻā§‡āĻ‡ āĻ…āĻĨāĻŦāĻž 0 āĻŦāĻ¸āĻžāĻ‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ unbuffered āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻŦāĻ˛āĻž āĻšā§ŸāĨ¤

make() āĻĻāĻŋā§Ÿā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ declaration āĻāĻ° āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ –

				
					 ch := make(chan data_type, buffer_size)

				
			

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ – 

				
					ch := make(chan int, 10)