Vivasoft-logo

[ā§Ģ.ā§Š] āĻĢāĻžāχāϞ āĻ…āĻĒāĻžāϰ⧇āĻļāύ (File operations)

Go āĻāϰ io/ioutil āĻĒā§āϝāĻžāϕ⧇āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āϞ⧋āĻ•āĻžāϞ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ āĻĢāĻžāχāϞ read-write āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āĻāϰ āϏāĻžāĻĨ⧇ os āĻĒā§āϝāĻžāϕ⧇āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āύāĻŋāϜāĻ¸ā§āĻŦ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻŦāĻŋāώ⧟ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϝ⧇āĻŽāύ, file opening, closing, reading,creating, writing, remove

[ā§Ģ.ā§Š.ā§§] āĻĢāĻžāχāϞ open

os.Open(“..file_name”) āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āϞ⧋āĻ•āĻžāϞ āĻĢāĻžāχāϞ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻžāχāϞ āĻ“āĻĒ⧇āύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻŦā§āĻ°ā§āϝāĻžāϕ⧇āĻŸā§‡āϰ āĻ­āĻŋāϤāϰ⧇ file_name āĻāϰ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āφāĻŽāϰāĻž āϝ⧇ āĻĢāĻžāχāϞāϟāĻž āĻ“āĻĒ⧇āύ āĻ•āϰāϤ⧇ āϚāĻžāĻšā§āĻ›āĻŋ, āϤāĻžāϰ path āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāχ āĻĢāĻžāĻ‚āĻļāύāϟāĻž āĻāĻ•āϟāĻž os.File āĻāϰ āĻāĻ•āϟāĻŋ āĻĒā§Ÿā§‡āĻ¨ā§āϟāĻžāϰ (*os.File, āϝ⧇āϟāĻž file handle āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇) āĻāĻŦāĻ‚ āĻāĻ•āϟāĻž āĻāϰāϰ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤Â 

āĻĢāĻžāχāϞ āĻ“āĻĒ⧇āύ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āĻŦāĻžāĻ•āĻŋ āϏāĻŦ āĻ•āĻžāϜ āĻļ⧇āώ⧇ āĻĢāĻžāχāϞāϟāĻž close āĻ•āϰāĻž āĻ­āĻžāϞ⧋ āĻĒā§āĻ°ā§āϝāĻžāĻ•āϟāĻŋāϏ ( āĻāϟāĻžāϰ āϜāĻ¨ā§āϝ defer āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§Ÿ), āύāĻŋāĻšā§‡āϰ āϕ⧋āĻĄāϟāĻž āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻŋ –

				
					

   f, err := os.Open("../5-type-converison/read-file.txt")
   defer f.Close()
   if err != nil {
   fmt.Println(err)
   return
   }

				
			

āĻāĻ‡Â  āϕ⧋āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻĢāĻžāχāϞ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻ›āĻŋāϞ⧋āσ

āφāĻŽāϰāĻžÂ  “6-file/file-op.go” path āĻ āĻĨ⧇āϕ⧇ “5-type-converison” āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇āϰ read-file.txt āĻ“āĻĒ⧇āύ āĻ•āϰāĻ›āĻŋāĨ¤ āϤāĻžāχ os.Open() āĻāϰ āĻ­āĻŋāϤāϰ⧇ āϏ⧇āχ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻĢāĻžāχāϞ⧇āϰ path āĻĻā§‡ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤ āϝāĻĻāĻŋ āĻ āĻŋāĻ•āĻ āĻžāĻ• āĻŽāϤ⧋ āĻĢāĻžāχāϞ āĻ“āĻĒ⧇āύ āύāĻž āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ āĻāϰāϰ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāϤ⧋āĨ¤

[ā§Ģ.ā§Š.⧍] āĻĢāĻžāχāϞ Read

āϕ⧋āύ āĻĢāĻžāχāϞāϕ⧇ read āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻĒāĻžāχāĨ¤ āĻāχ āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ⧇āϰ āϏāĻžāĻĨ⧇ os āĻĒā§āϝāĻžāϕ⧇āĻœā§‡āϰ Read() āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ read āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϤāĻŦ⧇ āĻāχ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻāĻ•āϟāĻž byte āϟāĻžāχāĻĒ⧇āϰ āĻ…ā§āϝāĻžāϰ⧇ āϤ⧇,  āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ read āĻ•āϰāĻž āĻŦāĻžāχāϟāϗ⧁āϞ⧋ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰ⧇āĨ¤Â 

āĻāĻ•āϏāĻžāĻĨ⧇ āĻ•āϤāϟ⧁āϕ⧁ read āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰ⧇?

byte āϟāĻžāχāĻĒ⧇āϰ āϝ⧇ āĻ…ā§āϝāĻžāϰ⧇ āϤ⧇ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻ›āĻŋ, āϤāĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āϏāĻŽāĻžāύ (āϝāĻĻāĻŋ āĻĢāĻžāχāϞ āĻāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ byte āĻ…ā§āϝāĻžāϰ⧇āϰ āĻšā§‡ā§Ÿā§‡ āĻ•āĻŽ āĻĨāĻžāϕ⧇ āϤāĻžāĻšāϞ⧇ āϏāĻŦāχ read āĻ•āϰāĻŦ⧇)āĨ¤Â  āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ āĻ•āϤāϗ⧁āϞāĻž byte read āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ āϏ⧇āχ āϏāĻ‚āĻ–ā§āϝāĻž āĻāĻŦāĻ‚ āĻāϰāϰ (āĻāχ āĻāϰāϰ āĻšā§‡āĻ• āĻ•āϰ⧇ āϝāĻĻāĻŋ āĻĻ⧇āĻ–āĻž āϝāĻžā§Ÿ āϝ⧇ āϤāĻž nil, āϤāĻžāĻšāϞ⧇āχ āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āϏāĻžāĻŽāύ⧇ āφāĻ—āĻžāĻŦ⧇) – 

				
					 f, err := os.Open("read-file.txt")
   defer f.Close()
   if err != nil {
       fmt.Println(err)
       return
   }
   data := make([]byte, 100)
   n, err := f.Read(data)
   if err != nil {
       fmt.Println(err)
       return
   }
   fmt.Printf("Read %d bytes: %s\n", n, string(data[:n]))

				
			

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

				
					Read 12 bytes: Hello Golang

				
			

āωāĻĒāϰ⧇āϰ āϕ⧋āĻĄāϟāĻž āϝāĻĻāĻŋ āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻŋ, āϤāĻžāĻšāϞ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāĻŦ⧇, os.Open(“read-file.txt”), read-file.txt āĻĢāĻžāχāϞ āϟāĻž read āĻ•āϰ⧇ āĻāĻŦāĻ‚ f āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻāĻŦāĻ‚ err, āĻāϰāϰ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āĻāχ f āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞ Read() āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, 100 āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ byte āϟāĻžāχāĻĒ āĻ…ā§āϝāĻžāϰ⧇āϤ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ 100 byte āĻĄāĻžāϟāĻž read āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤

io/ioutil āĻāϰ ReadFile() āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāϰ⧋ āϏāĻšāĻœā§‡ āĻĢāĻžāχāϞ read āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āϕ⧇āύāύāĻž āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āφāϞāĻžāĻĻāĻž āĻ­āĻžāĻŦ⧇ āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āϞāĻžāϗ⧇ āύāĻž, āφāĻŦāĻžāϰ āφāĻŽāĻžāĻĻ⧇āϰ āφāϞāĻžāĻĻāĻž āĻ­āĻžāĻŦ⧇ byte āĻ…ā§āϝāĻžāϰ⧇ āĻĄāĻŋāĻ•ā§āĻ˛ā§‡ā§ŸāĻžāϰ āĻ•āϰ⧇ āϤāĻžāϤ⧇ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āϞāĻžāϗ⧇ āύāĻž – 

				
					 ioutilData, err := ioutil.ReadFile("read-file.txt")
   if err != nil {
   fmt.Println(err)
   return
   }
   fmt.Printf("Read %d bytes: %s\n",len(ioutilData), string(ioutilData))

				
			

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

				
					   Read 12 bytes: Hello Golang
				
			

āĻāχ āϕ⧋āĻĄ āϝāĻĻāĻŋ āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻŋ, ioutil.ReadFile(“read-file.txt“) āϟāĻŋ read-file.txt āĻĢāĻžāχāϞ read āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāϛ⧇ ioutilData (byte āϟāĻžāχāĻĒ⧇āϰ āĻ…ā§āϝāĻžāϰ⧇) āĻāĻŦāĻ‚Â  err (āĻāϰāϰ). āĻāχ ioutilData āϕ⧇ string āĻ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻĢāĻžāχāϞ⧇āϰ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤

[ā§Ģ.ā§Š.ā§Š] āĻĢāĻžāχāϞ Create

os.Create(..file_name) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāϤ⧁āύ āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿ (āϝāĻĻāĻŋ āĻĢāĻžāχāϞ āϟāĻž āφāϗ⧇ āĻĨ⧇āϕ⧇āχ āĻĨ⧇āϕ⧇ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻĢāĻžāχāϞ⧇āϰ āφāϗ⧇āϰ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŽā§āϛ⧇ āϝāĻžā§Ÿ)āĨ¤ āĻāχ āĻĢāĻžāĻ‚āĻļāύ āϟāĻž āĻĢāĻžāχāϞ⧇āϰ path  āχāύāĻĒ⧁āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āύāĻŋā§Ÿā§‡,  āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻāĻŦāĻ‚ āĻāϰāϰ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇(āϝāĻĻāĻŋ āĻāϰāϰ nil āύāĻž āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ āĻĢāĻžāχāϞ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞāϕ⧇ āφāϰ āχāύāĻĒ⧁āϟ/āφāωāϟāĻĒ⧁āĻŸā§‡āϰ āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āύāĻž –

				
					  f, err := os.Create("read-file.txt")
   if err != nil {
       fmt.Println(err)
       return
   }
   defer f.Close()
				
			

āĻāχ āϕ⧋āĻĄā§‡āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇, āĻāĻ•āχ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋāϤ⧇ “read-file.txt” āĻĢāĻžāχāϞ⧇ create āĻšāĻŦ⧇, āϝāĻĻāĻŋ āϕ⧋āύ āĻāϰāϰ āύāĻž āĻĨāĻžāϕ⧇āĨ¤

[ā§Ģ.ā§Š.ā§Ē] āĻĢāĻžāχāϞ Writing

āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻž āύāϤ⧁āύ āĻĢāĻžāχāϞ create āĻ•āϰāĻžāϰ āĻĒāϰ⧇ write āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āφāϗ⧇ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻž byte āϟāĻžāχāĻĒ⧇āϰ āĻ…ā§āϝāĻžāϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āϏ⧇āĻ–āĻžāύ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĢāĻžāχāϞ⧇ āĻ•āĻŋ write āĻ•āϰāϤ⧇ āϚāĻžāχ, āϤāĻž āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āĻĢāĻžāχāϞ create āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āφāĻŽāϰāĻž āϝ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞāϟāĻž āĻĒāĻžāĻŦā§‹, āϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āχ write āĻĢāĻžāĻ‚āĻļāύ āϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āĻāχ āĻĢāĻžāĻ‚āĻļāύ āϟāĻž āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ āĻ•āϤ āĻŦāĻžāχāϟ write āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ āϤāĻžāϰ āϏāĻ‚āĻ–ā§āϝāĻž āĻāĻŦāĻ‚ āĻāϰāϰāĨ¤ āĻāχ āĻāϰāϰ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻĢāĻžāχāϞ write āĻ āϕ⧋āύ⧋ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϞ⧋ āĻ•āĻŋāύāĻž āϤāĻž āϝāĻžāϚāĻžāχ āĻ•āϰāĻž āĻšā§ŸāĨ¤

āϤāĻŦ⧇ āϝāĻĻāĻŋ āϕ⧋āύ āĻ•āĻžāϰāϪ⧇ āύāϤ⧁āύ create āĻ•āϰāĻž file āĻ write āĻšāĻ“ā§ŸāĻž byte āϏāĻ‚āĻ–ā§āϝāĻž āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āϝāĻž write āĻ•āϰāϤ⧇ āϚāĻžāĻšā§āĻ›āĻŋ āϤāĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āϝāĻĻāĻŋ āϏāĻŽāĻžāύ āύāĻž āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ āϕ⧋āύ āĻāϰāϰ āĻšāĻŦ⧇ āύāĻž, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻž āφāĻŽāĻžāĻĻ⧇āϰ āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇ āĻšā§‡āĻ• āĻ•āϰ⧇ āύāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤Â 

				
					 f, err := os.Create("read-file.txt")
   if err != nil {
       fmt.Println(err)
       return
   }
   defer f.Close()


   data := []byte("Hello Golang")
   n, err := f.Write(data)
   if len(data) != n {
       fmt.Printf("line num not matched %v, %v\n", n, len(data))
       return
   }
   if err != nil {
       fmt.Println(err)
       return
   }

				
			

ioutil āĻĻāĻŋā§Ÿā§‡āĻ“ āĻĢāĻžāχāϞ write āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ ioutil āĻāϰ WriteFile() āĻĢāĻžāĻ‚āĻļāύ āĻāϰ – 

  • ā§§āĻŽ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāσ āϝ⧇ āĻĢāĻžāχāϞāϟāĻž write āĻ•āϰāϤ⧇ āϚāĻžāχ, āϤāĻžāϰ file path
  • ⧍⧟ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāσ byte āϟāĻžāχāĻĒ⧇āϰ āĻ…ā§āϝāĻžāϰ⧇āϰ āύāĻžāĻŽ (āĻĢāĻžāχāϞ⧇ āϝāĻž āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰ⧇ āϰāĻžāĻ–āĻž āĻšāĻŦ⧇, āϏ⧇āχ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āĻāχ āĻ…ā§āϝāĻžāϰ⧇āϤ⧇ āφāϗ⧇ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰ⧇ āϰāĻžāĻ–āĻž āĻšā§Ÿ)
  • ā§Šā§Ÿ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāσ āĻĢāĻžāχāϞ permission mode āϏ⧇āϟ āĻ•āϰ⧇ āĻĻāĻŋāϤ⧇ āĻšā§ŸāĨ¤ āĻāϰ āĻĻā§āĻŦāĻžāϰāĻžāχ āĻĢāĻžāχāϞ⧇ read/write āĻ•āϰāĻžāϰ āĻĒāĻžāϰāĻŽāĻŋāĻļāύ āϏ⧇āϟ āĻšā§ŸāĨ¤
				
					   data := []byte("Hello, world!")
   err = ioutil.WriteFile("read-file.txt", data, 0644)
   if err != nil {
       fmt.Println(err)
       return
   }

				
			

[ā§Ģ.ā§Š.ā§Ģ] āĻĢāĻžāχāϞ āϰāĻŋāĻŽā§āĻ­ āĻ•āϰāĻž

os.Remove(“file_name”)  āĻāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž path āĻāϰ āĻĢāĻžāχāϞāϟāĻŋ āĻĄāĻŋāϞāĻŋāϟ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤ āĻāχ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋāϰ āχāύāĻĒ⧁āϟ āĻšāĻŋāϏ⧇āĻŦ⧇, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻž āĻĢāĻžāχāϞ path āĻ¨ā§‡ā§Ÿ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻāϰāϰ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻāϰāϰ nil āύāĻž āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ āĻĢāĻžāχāϞ āĻĄāĻŋāϞāĻŋāϟ āĻšāĻŦ⧇ āύāĻžāĨ¤

				
					  err := os.Remove("created.txt")
   if err != nil {
       fmt.Println(err)
       return
   }

				
			

āϝāĻĻāĻŋ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ null āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ InvalidUnmarshalError āĻĻāĻŋāĻŦ⧇āĨ¤Â Â 

āύāĻŋāĻšā§‡āϰ āϕ⧋āĻĄāϟāĻž āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻŋ –

				
					 byt := []byte(
       `
       {
           "num":6.13,
           "strs":["a","b"]
       }
       `,
   )
   var v map[string]interface{}
   if err := json.Unmarshal(byt, &v); err != nil {
       panic(err)
   }
   fmt.Println(v)

				
			

āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ JSON āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϕ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ Map āĻ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āϚāĻžāχ, āϝ⧇āĻ–āĻžāύ⧇ key āϗ⧁āϞ⧋ āĻšāĻŦ⧇ string āĻāĻŦāĻ‚ key āĻāϰ āĻ­ā§āϝāĻžāϞ⧁ āϝ⧇āϕ⧋āύ⧋ āĻ•āĻŋāϛ⧁āχ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āφāωāϟāĻĒ⧁āϟ:

				
					   map[num:6.13 strs:[a b]]
				
			

āϤāĻŦ⧇ āĻāχ āĻĒāĻĻā§āĻŦāϤāĻŋāϰ āĻāĻ•āϟāĻŋ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϞ⧋, āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ Map āĻāϰ āĻ­ā§āϝāĻžāϞ⧁āϗ⧁āϞ⧋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āϟāĻžāχāĻĒ āĻ•āĻžāĻ¸ā§āϟāĻŋāĻ‚ āĻ•āϰ⧇ āύāĻŋāϤ⧇ āĻšāĻŦ⧇, (āϕ⧇āύāύāĻž āφāĻŽāϰāĻž āĻ­ā§āϝāĻžāϞ⧁ āϗ⧁āϞāĻž interface{} āĻšāĻŋāϏ⧇āĻŦ⧇ āύāĻŋā§Ÿā§‡āĻ›āĻŋ)āĨ¤ āĻāϟāĻžāϰ āϜāĻ¨ā§āϝ āϝāĻĻāĻŋ āϕ⧋āύ āϭ⧁āϞ āĻšā§Ÿ āϤāĻžāĻšāϞ⧇ āϰāĻžāύāϟāĻžāχāĻŽ āĻāϰāϰ āĻšāĻŦ⧇, āϝ⧇āϟāĻž āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰāĻž āϖ⧁āĻŦāχ āĻāĻžāĻŽā§‡āϞāĻžāϰ āĻŦāĻŋāώ⧟āĨ¤ āϤāĻžāχ āφāĻŽāϰāĻž āϝāĻĻāĻŋ āφāϗ⧇ āĻĨ⧇āϕ⧇āχ, āĻĄāĻŋāϕ⧋āĻĄā§‡āĻĄ JSON āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāϰ āĻĢāĻŋāĻ˛ā§āĻĄāϗ⧁āϞ⧋āϰ āĻ­ā§āϝāĻžāϞ⧁ āĻ•āĻŋ āϟāĻžāχāĻĒ āĻšāĻŦ⧇, āϤāĻž āĻ āĻŋāĻ• āĻ•āϰ⧇ āĻĻāĻŋāϤ⧇ āϚāĻžāχ, āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž Struct āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ –

				
					 type response2 struct {
       Page   int      `json:"page-number"`
       Fruits []string `json:"fruits-List"`
   }
   str := `
   {
       "number": 1,
       "fruits-List": ["apple", "peach"]
   }`
   res := response2{}
   json.Unmarshal([]byte(str), &res)
   fmt.Println(res)
   fmt.Println(res.Fruits[0])

				
			

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

				
					 {0 [apple peach]}
   apple

				
			

āĻāχ āĻĒāĻĻā§āĻŦāϤāĻŋāϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦ⧜ āϏ⧁āĻŦāĻŋāϧāĻž āĻšāϞ⧋; type-safety āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āϟāĻžāχāĻĒ āĻ•āĻžāĻ¸ā§āϟāĻŋāĻ‚ āύāĻž āĻ•āϰāĻžāĨ¤Â 

json.valid(): 

āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻ¸ā§āϞāĻžāχāϏ / map / āĻšā§āϝāĻžāύ⧇āϞ āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāĻ›āĻŋāĨ¤

āĻļ⧁āϰ⧁āϤ⧇ āϕ⧋āύ⧋ āĻ­ā§āϝāĻžāϞ⧁ āĻĻāĻŋā§Ÿā§‡ āĻāĻĻ⧇āϰāϕ⧇ āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāϜ āĻ•āϰ⧇ āύāĻŋāĻŦā§‹ (āύāϤ⧁āĻŦāĻž nil / zero āĻĻāĻŋā§Ÿā§‡ āχāύāĻŋāĻļāĻŋ⧟āĻžāϞāĻžāχāϜ āĻšāĻŦ⧇)

āĻļ⧁āϰ⧁āϤ⧇ āĻāĻĻ⧇āϰ āϏāĻžāχāϜ, āĻ•ā§āϝāĻžāĻĒāĻžāϏāĻŋāϟāĻŋ āĻ•āϤ āĻšāĻŦ⧇ āϤāĻž āφāĻŽāϰāĻž āϜāĻžāύāϞ⧇āĻ“, āĻĒāϰ⧇ āϤāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ (āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻāĻĻ⧇āϰ āϏāĻžāχāϜ, āĻ•ā§āϝāĻžāĻĒāĻžāϏāĻŋāϟāĻŋ āĻĄāĻžāχāύāĻžāĻŽāĻŋāĻ•ā§āϝāĻžāϞāĻŋ āĻĒāϰāĻŋāĻ°ā§āϤāύ āĻšāĻŦ⧇)

āĻāϰāĻ•āĻŽ āĻ…āĻŦāĻ¸ā§āĻĨāĻžā§ŸāĻāχ āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻšā§‡āĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ , āϕ⧋āύ []byte (āĻŦāĻžāχāϟ āĻ¸ā§āϞāĻžāχāϏ) āĻ­ā§āϝāĻžāϞāĻŋāĻĄ JSON āĻĄāĻžāϟāĻž āĻ•āĻŋ-āύāĻžāĨ¤ unmarshal() āĻ•āϰāĻžāϰ āφāϗ⧇ āĻāχ āĻĢāĻžāĻ‚āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāϗ⧇āχ āĻāϰāϰ āĻšā§‡āĻ• āĻ•āϰāĻž āĻšā§Ÿ.

āύāĻŋāĻšā§‡āϰ āϕ⧋āĻĄāϟāĻŋ āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻŋ – 

				
					 type response2 struct {
       Page   int      `json:"page-number"`
       Fruits []string `json:"fruits-List"`
   }
   str := `
   {
       "number": 1 "fruits-List": ["apple", "peach"]
   }`
   if json.Valid([]byte(str)) {
       res := response2{}
       json.Unmarshal([]byte(str), &res)
       fmt.Println(res)
       fmt.Println(res.Fruits[0])
   } else{
       fmt.Println("wrong JSON response")
   }

				
			

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

				
					 wrong JSON response
				
			

4.json.NewEncoder(): 

āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ JSON encoding āĻ•āϰāĻž āϝāĻžā§Ÿ āĻāĻŦāĻ‚ āĻāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻšāϞ⧋ āφāĻŽāϰāĻž āĻāĻ•āχ āϏāĻžāĻĨ⧇ JSON āĻ encode, āφāωāϟāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻāĻŦāĻ‚Â  āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻ›āĻŋ  – 

				
					  package main

   import (
       "encoding/json"
       "os"
   )

   type Person struct {
       Name string
       Age  int
   }

   func main() {
       person := Person{Name: "John", Age: 30}
       file, err := os.Create("person.json")
       if err != nil {
           panic(err)
       }
       defer file.Close()
       encoder := json.NewEncoder(file)
       err = encoder.Encode(person)
       if err != nil {
           panic(err)
       }
   }

				
			

āφāωāϟāĻĒ⧁āϟ person.json āĻĢāĻžāχāϞ⧇ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžāĻŦā§‡Â  –

				
					   {"Name":"John","Age":30}

				
			

āφāϰ⧋ āĻŦ⧇āĻļ āĻ•āĻŋāϛ⧁ āĻĢāĻžāĻ‚āĻļāύ āĻ°ā§Ÿā§‡āϛ⧇āσ āĻāϰ āĻŽāĻ§ā§āϝ⧇ json.NewDecoder() āĻšāϞ⧋ json.NewEncoder() āĻāϰ āĻ āĻŋāĻ• āωāĻ˛ā§āĻŸā§‹, āϝ⧇āϟāĻž json.NewDecoder() āχāύāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĨ⧇āϕ⧇ āϏāϰāĻžāϏāϰāĻŋ JSON āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āχāύāĻĒ⧁āϟ āĻ¨ā§‡ā§ŸāĨ¤Â 

[ā§Ģ.⧍.⧍] Data Serialization

Data Serialization āĻšāϞ⧋ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāĻ°ā§āĻĄ āĻĄāĻžāϟāĻž āϕ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻž āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž, āϝ⧇āϟāĻžāϕ⧇ āύ⧇āϟāĻ“ā§ŸāĻžāĻ°ā§āϕ⧇ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻŽāĻŋāϟ āĻ•āϰāĻž āϝāĻžāĻŦ⧇ āĻ…āĻĨāĻŦāĻž Disk āĻ āϏ⧇āχāĻ­ āĻ•āϰ⧇ āϰāĻžāĻ–āĻž āϝāĻžāĻŦ⧇, āϝāĻžāϤ⧇ āĻĒāϰ⧇ āĻāχ āĻĄāĻžāϟāĻž āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤Â Â 

Go āϤ⧇ Data Serialization āĻāϰ āϜāĻ¨ā§āϝ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦ⧇āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻŸā§‡āĻ•āύāĻŋāĻ• āĻšāϞ⧋ JSON āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āĻ¨ā§‡ā§ŸāĻž, āϝ⧇āϟāĻž āφāĻŽāϰāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻļāĻŋāϖ⧇āĻ›āĻŋāĨ¤Â 

āĻāĻ–āĻžāĻ¨ā§‡Â  āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇, āĻĒā§āϰāĻžā§ŸāĻļāσ JSON āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡āϰ key āĻāĻŦāĻ‚ Struct āĻāϰ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāĻŋāĻ˛ā§āĻĄ āϗ⧁āϞ⧋ āĻāĻ•āχ āύāĻžāĻŽā§‡āϰ āĻšā§Ÿ āύāĻž, āϤāĻžāĻ‡Â  Struct āĻāϰ āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽāĻžāχāϜāĻĄ “json” āĻŸā§āϝāĻžāĻ— āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āύāĻŋāĻšā§‡āϰ āϕ⧋āĻĄāϟāĻŋ āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻŋ –

				
					  type response2 struct {
       Page   int      `json:"pageNumber"`
       Fruits []string `json:"fruits-List"`
   }
   jsonStr := `
   {
   "page-number": 1,
   "fruits-List": ["apple", "peach"]
   }`
   res := response2{}
   json.Unmarshal([]byte(jsonStr), &res)
   fmt.Println(res)

				
			

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

				
					   {0 [apple peach]}
				
			

āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻŽāϰāĻž āϝ⧇ āĻœā§‡āϏāύ āĻĄāĻžāϟāĻž “jsonStr” āϰāĻŋāϏāĻŋāĻ­ āĻ•āϰ⧇, āĻāύāϕ⧋āĻĄ āĻ•āϰāϤ⧇ āϚāĻžāĻšā§āĻ›āĻŋ, āϤāĻžāϰ āĻāĻ•āϟāĻžÂ  key (“page-number”), response2 Struct āĻāϰ Page āĻĢāĻŋāĻ˛ā§āĻĄā§‡āĻ°Â  āĻœā§‡āϏāύ āĻŸā§āϝāĻžāĻ— (pageNumber) āĻāĻ°Â  āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ⧇ āύāĻŋāĨ¤ āĻāϰ āĻĢāϞ⧇ āφāĻŽāϰāĻž āϝāĻ–āĻ¨Â  jsonStr āϕ⧇ āĻāύāϕ⧋āĻĄ āĻ•āϰ⧇ response2 Struct āĻ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰ⧇ āϰāĻžāĻ–āϤ⧇ āϚāĻžāĻšā§āĻ›āĻŋ, āĻ“āχ āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ āĻ­ā§āϝāĻžāϞ⧁ null āĻšā§Ÿā§‡ āϝāĻžāĻšā§āϛ⧇ (āϕ⧋āύ error āĻĒāĻžāχāύāĻŋ āĻ•āĻŋāĻ¨ā§āϤ⧁!!) āĨ¤ āϤāĻžāχ, Struct āĻāϰ “json” āĻŸā§āϝāĻžāĻ— āĻĻā§‡ā§ŸāĻžāϰ āϏāĻŽā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻžā§œāϤāĻŋ āϏāϤāĻ°ā§āĻ•āϤāĻž āĻ…āĻŦāϞāĻŽā§āĻŦāύ āĻ•āϰāĻž āϞāĻžāĻ—āĻŦ⧇, āϝ⧇āύ JSON āĻāϰ key āĻāĻŦāĻ‚Â  Struct āĻāϰ āĻāĻ•āχ āĻĢāĻŋāĻ˛ā§āĻĄā§‡āϰ “json” āĻŸā§āϝāĻžāĻ— āĻāĻ•āχ āĻšā§ŸāĨ¤

[ā§Ģ.⧍.ā§Š] āϟāĻžāχāĻĒ āĻ•āύāĻ­āĻžāĻ°ā§āĻļāύ

āĻāĻ• āϟāĻžāχāĻĒ⧇āϰ āĻĄāĻžāϟāĻž āϕ⧇ āĻ…āĻ¨ā§āϝ āϟāĻžāχāĻĒ⧇āϰ āĻĄāĻžāϟāĻž āϤ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻžāϕ⧇ āĻŦāϞ⧇ āϟāĻžāχāĻĒ āĻ•āύāĻ­āĻžāĻ°ā§āĻļāύ. Go āϤ⧇ āĻāĻ• āϟāĻžāχāĻĒ⧇āϰ āĻĄāĻžāϟāĻž āϕ⧇ āĻ…āĻ¨ā§āϝ āϟāĻžāχāĻĒ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϖ⧁āĻŦāχ āϏāĻšāϜ –

				
					  var iNum int = 10
   var fNum float64 = float64(iNum)
   fmt.Printf("value = %v | type - %T\n", fNum, fNum)
   var fNum2 = 5.65
   iNum2 := int(fNum2)
   fmt.Printf("value = %v | type - %T\n", iNum2, iNum2)

				
			

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

				
					   value = 10 | type - float64
   value = 5 | type - int
				
			

āĻāχ āϕ⧋āĻĄ āĻĻ⧇āϖ⧇ āϖ⧁āĻŦ āϏāĻšāĻœā§‡āχ āĻŦā§‹āĻāĻž āϝāĻžāĻšā§āϛ⧇ āϝ⧇, āφāĻŽāϰāĻž āϝāĻĻāĻŋ V āϟāĻžāχāĻĒ⧇āϰ āĻĄāĻžāϟāĻž āϕ⧇ T āϟāĻžāχāĻĒ⧇āϰ āĻĄāĻžāϟāĻžāϤ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āϚāĻžāχ, āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž T(V) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹āĨ¤Â 

āϤāĻŦ⧇ āĻ…āĻŦāĻļā§āϝāχ āĻ•āĻŋāϛ⧁ āύāĻŋ⧟āĻŽ āĻŽā§‡āύ⧇ āĻ•āϰāĻž āϞāĻžāĻ—āĻŦ⧇, string āϟāĻžāχāĻĒ⧇āϰ āĻĄāĻžāϟāĻž āϕ⧇ āϤ⧋ āφāϰ āχāĻ¨ā§āϟāĻŋāϜāĻžāϰ / āĻĢā§āϞ⧋āϟ āĻ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āϚāĻžāĻ“ā§ŸāĻž āωāϚāĻŋāϤ āύāĻžāĨ¤

				
					  var str string = "string value"
   iNum2 := int(str)
				
			

āĻāχ āĻ…āĻĻā§āϭ⧁āϤ āϚāĻžāĻ“ā§ŸāĻžāϰ āĻĢāϞāĻžāĻĢāϞ āĻšāĻžāϤ⧇-āύāĻžāϤ⧇ –

				
					   # command-line-arguments
   ./type_conv.go:8:15: cannot convert str (variable of type string) to type int
				
			

āĻ—āĻžāĻŖāĻŋāϤāĻŋāĻ• āĻšāĻŋāϏāĻžāĻŦ āύāĻŋāĻ•āĻžāĻļ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ āĻāχ āϟāĻžāχāĻĒ āĻ•āύāĻ­āĻžāĻ°ā§āĻļāύ āϗ⧁āϞ⧋ āĻ–ā§‡ā§ŸāĻžāϞ āϰ⧇āϖ⧇ āĻ•āϰāĻž āϞāĻžāĻ—āĻŦ⧇āĨ¤Â 

āϧāϰāĻŋ, āφāĻŽāϰāĻž āϚāĻžāĻšā§āĻ›āĻŋ ⧍ āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž āϝ⧋āĻ— āĻ•āϰāĻŦā§‹, āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ interger, āφāϰ⧇āĻ•āϟāĻŋ āĻĢā§āϞ⧋āϟ. āϤāĻ–āύ āĻ…āĻŦāĻļā§āϝāχ āĻāĻĻ⧇āϰāϕ⧇ āĻāĻ•āχ āϟāĻžāχāĻĒ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āϞāĻžāĻ—āĻŦ⧇, āύāĻžāĻšāϞ⧇ error āφāϏāĻŦ⧇

				
					

   var num1 float64 = 10.5
   var num2 int = 5
   result := num1 + num2
   fmt.Println("result = ", result)
				
			

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

				
					 # command-line-arguments
   ./type_conv.go:20:12: invalid operation: num1 + num2 (mismatched types float64 and int)
				
			

āĻ¸ā§āĻĒāĻˇā§āϟāϤāχ, āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇,āφāĻŽāĻžāĻĻ⧇āϰ āϝ⧋āĻ— āĻ…āĻĒāĻžāϰ⧇āĻļāĻ¨ā§‡Â  āϭ⧁āϞ āĻšā§Ÿā§‡āϛ⧇āĨ¤Â 

āϏāĻ āĻŋāĻ• āĻ­āĻžāĻŦ⧇ āĻ•āϰāϞ⧇ āĻšāĻŦ⧇ āύāĻŋāĻšā§‡āϰ āĻŽāϤ⧋ –

				
					   var num1 float64 = 10.5
   var num2 int = 5
   result := float64(num1) + float64(num2)
   fmt.Println("result = ", result)
				
			

āĻāĻ–āĻžāύ⧇ ⧍ āϟāĻž āύāĻžāĻŽā§āĻŦāĻžāϰāϕ⧇āχ āĻĢā§āϞ⧋āĻŸā§‡ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āĻ¨ā§‡ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇, āϚāĻžāχāϞ⧇ āφāĻŽāϰāĻž āχāĻ¨ā§āϟāĻŋāϜāĻžāϰ⧇āĻ“ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āύāĻŋāϤ⧇ āĻĒāĻžāϰāϤāĻžāĻŽāĨ¤

āφāĻŽāϰāĻž āϚāĻžāχāϞ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻŦ⧇āϏ⧇āϰ āύāĻžāĻŽā§āĻŦāĻžāϰ āϕ⧇ āĻ…āĻ¨ā§āϝ āϕ⧋āύ āĻŦ⧇āχāϏ⧇ āφāωāϟāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽā§‡ āĻĻ⧇āĻ–āĻžāϤ⧇ āĻĒāĻžāϰāĻŋāσ

				
					 var d1 int = 10
   fmt.Printf("in binary=%b\n", d1)
   fmt.Printf("in octal=%o\n", d1)
   fmt.Printf("in hexadecimal=%X\n", d1)

				
			

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

				
					 in binary=1010
   in octal=12
   in Hexadecimal=A