Как добавить кастомное свойство существующей структуре Go? Приветствую!
Следующим кодом получаю TCP соединение:ln, err := net.Listen("tcp", Server.GetHost()+Server.getPortForNet())
for {
connection, err := ln.Accept()
}connection - интерфейс net.Conn.
Мне нужно добавить несколько пользовательских свойств и методов этой структуре.
Например:?{
name string
lastname string
}
func (Connection *?) GetName() string {
return ?.name
}
func (Connection *?) GetLastName() string {
return ?.lastname
}
Т.е. я должен буду иметь возможность писать нечто подобное:connection.getName()
Как это сделать правильно? Спасибо за помощь.

21 Авг 2019 в 06:27
211 +1
0
Ответы
1

Чтобы добавить пользовательские свойства и методы к существующей структуре net.Conn, вам нужно создать новый тип, встроить в него net.Conn и добавить нужные поля и методы. Например, вот как это можно сделать:

package main
import (
"net"
)
type CustomConn struct {
net.Conn
Name string
LastName string
}
func (c *CustomConn) GetName() string {
return c.Name
}
func (c *CustomConn) GetLastName() string {
return c.LastName
}
func main() {
ln, err := net.Listen("tcp", "localhost:8080")
if err != nil {
panic(err)
}
for {
connection, err := ln.Accept()
if err != nil {
panic(err)
}
customConn := &CustomConn{
Conn: connection,
Name: "John",
LastName: "Doe",
}
// Теперь у вас есть доступ к пользовательским методам и свойствам
name := customConn.GetName()
lastName := customConn.GetLastName()
// Использование connection в качестве net.Conn
}
}

В этом примере мы создаём новый тип CustomConn, который включает в себя net.Conn и добавляет свои поля Name и LastName, а также методы GetName() и GetLastName(). В основной функции мы создаём объект CustomConn на основе полученного net.Conn и можем использовать пользовательские методы и свойства этого объекта.

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир