- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Golang Program to Create an Interface Named Writer that Defines a Write Method
In this Golang article we will learn to create an interface named writer that defines a write method write method for file type as well as writer interface and filet type.
Syntax
data := []byte("Hello, World!")
It is used to declare a byte slice in go language.
data : it is a variable declaration for a var named data.
[]byte: the type of variable “data” as a byte slice.
it is used to convert the string literal into byte slice.
Example 1
In this example, we are going to interface named writers that include a write() method. The code given below demonstrates writing data into a file by calling write method on file object.
package main import "fmt" type Writer interface { Write(p []byte) (n int, err error) } type File struct { } func (f *File) Write(p []byte) (n int, err error) { return len(p), nil } func main() { file := &File{} data := []byte("Hello, World!") bytesWritten, err := file.Write(data) if err != nil { fmt.Println("Error:", err) return } fmt.Println("Bytes written:", bytesWritten) }
Output
Bytes Written : 13
Example 2
In this method instead of creating a struct we can use the built in os.file() type that satisfies the writer interface. The below code demonstrates the use of interface and struct to write data into a file.
package main import "fmt" type Writer interface { Write(p []byte) (n int, err error) } type File struct { } func (f *File) Write(p []byte) (n int, err error) { return len(p), nil } func main() { file := &File{} data := []byte("Hello, World!") bytesWritten, err := writeToFile(file, data) if err != nil { fmt.Println("Error:", err) return } fmt.Println("Bytes written:", bytesWritten) } func writeToFile(writer Writer, data []byte) (int, error) { return writer.Write(data) }
Output
Bytes Written : 13
Conclusion
In this article we have discussed how we can create an interface named writer that defines a write method. We have explored different examples of writing data to a file using the Writer interface and the File type emphasized the advantages of interfaces and their role in fostering code reusability and abstraction.