"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 인터페이스 쓰기

인터페이스 쓰기

2025-02-06에 게시되었습니다
검색:111

A interface Write

인터페이스는 다형성과 추상화를 촉진하는 데 기본이됩니다. 이들은 유형이 구현 해야하는 일련의 방법을 지정하는 계약으로 작용하여 다른 유형을 균일하고 유연하게 처리 할 수 ​​있습니다.

인터페이스

GO에서 인터페이스는 메소드 세트를 구현하지 않고 정의하는 유형입니다. 유형이 인터페이스를 충족 해야하는 메소드의 서명 만 지정합니다. 이를 통해 인터페이스에 의해 정의 된 메소드를 구현하는 한 서로 다른 유형을 균일하게 처리 할 수 ​​있습니다. 인터페이스는 다형성과 추상화를 촉진하여 유연하고 재사용 가능한 코드의 생성을 용이하게합니다.

io.writer

io.writer 인터페이스는 GO에서 가장 많이 사용되는 것 중 하나입니다. 이는 BYTES ([] BYTE)에서 blyte를 수신하고 정수 (int)와 오류 (오류)를 반환합니다. 몇 가지 유형은 os.file, bytes.buffer 및 net.conn을 포함 하여이 인터페이스를 구현합니다. 이것은 다른 유형의 작문 목적지를 균일하고 유연하게 처리 할 수있게합니다.


// Writer는 기본 쓰기 작업을 캡슐화하는 인터페이스입니다. Type Writer Interface { write (p [] byte) (n int, err error) }

// Writer é a interface que encapsula a operação básica de escrita.
type Writer interface {
    Write(p []byte) (n int, err error)
}
쓰기 : 이것은 인수로서 bly ([] byte) 슬라이스를 수신하고 두 값을 반환하는 방법입니다.
  • N : 서면 바이트 수입니다.
      err : 쓰기 중에 오류가 발생하는지를 나타내는 오류 유형 값입니다.
    • 올바른 구독으로 쓰기 메소드를 구현하는 모든 유형은 io.writer로 간주됩니다.
    왜 .writer io.writer?

추상화

: 다른 유형의 작문 목적지를 고르게 처리 할 수 ​​있습니다.

    Flexibility
  • : io.writer 인터페이스를 구현하는 모든 종류의 일반적인 방법의 생성을 용이하게합니다. Code Reuse
  • : io.writer를 사용하면 파일, 소켓, 버퍼 등과 같은 다양한 유형의 대상이 재사용 될 수 있습니다.
  • Test
  • : Test Code를 분리하기 위해 모의 및 스터브를 만들 수 있습니다.
  • 패키지 메인 수입 (수입) "FMT" "너" "io" )) func main () { var w io.writer = os.stoutout // w는 io.writer 유형입니다. n, err : = w.rite ([] byte ( "hello, world!")))))) err! fmt.println ( "오류 :", err) } fmt.printf ( "\ bbytes 저술 : %b", n) }
  • /tmp ➜ go run example_io_writer.go 안녕하세요, 세상! 바이트 글 : 1101
  • 결론

io.writer 인터페이스는 GO에서 가장 일반적인 인터페이스 중 하나입니다. 이는 데이터 작성 작업을 추상화하는 데 사용됩니다. 이것은 코드 재사용, 일반적인 방법의 생성 및 시험 작성을 용이하게합니다. 또한, io.writer 인터페이스는 다형성을 촉진하여 인터페이스를 구현하는 다른 유형을 상호 교환 적으로 사용합니다. 그것은 Go 생태계에서 다양성과 중요성을 보여주는 여러 표준 GO 언어 패키지로 널리 구현됩니다.

참조
package main

import (
  "fmt"
  "os"
  "io"
)

func main() {
  var w io.Writer = os.Stdout // w é do tipo io.Writer

  n, err := w.Write([]byte("Hello, World!"))
  if err != nil {
    fmt.Println("Erro:", err)
  }

  fmt.Printf("\bBytes escritos: %b", n)
}
https://pkg.go.dev/io#writer
/tmp ➜ go run example_io_writer.go
Hello, World!
Bytes escritos: 1101

릴리스 선언문 이 기사는 https://dev.to/fabianoflorentino/a-interface-write-11c5?1에서 재현됩니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3