[ā§Ģ.ā§Š] āĻĢāĻžāĻāĻ˛ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ (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