Go 在函数调用中传递带参数的类型

Go 在函数调用中传递带参数的类型,go,Go,下面的代码来自Jan Newmarch关于Go中网络编程的文章。在我所看到的大多数Go代码中(这是非常少的,因为我是一个新手),您不会(在函数调用中)传递带有参数的类型 conn.Write([]byte(daytime)) 为什么必须在此函数调用中包含[]字节 func main() { service := ":1200" tcpAddr, err := net.ResolveTCPAddr("ip4", service) checkError(err)

下面的代码来自Jan Newmarch关于Go中网络编程的文章。在我所看到的大多数Go代码中(这是非常少的,因为我是一个新手),您不会(在函数调用中)传递带有参数的类型

conn.Write([]byte(daytime))
为什么必须在此函数调用中包含
[]字节

func main() {

    service := ":1200"
    tcpAddr, err := net.ResolveTCPAddr("ip4", service)
    checkError(err)

    listener, err := net.ListenTCP("tcp", tcpAddr)
    checkError(err)

    for {
        conn, err := listener.Accept()
        if err != nil {
            continue
        }

        daytime := time.Now().String()
        conn.Write([]byte(daytime))
应将该值作为字节片。由于
day
的类型为string,因此必须对其进行转换

您可以将上述内容改写为:

daytime := []byte(time.Now().String())
conn.Write(daytime)
或者,在@fabrizioM编写时,您可以使用格式化的编写器进行转换:

fmt.Fprintf(conn, daytime)
应将该值作为字节片。由于
day
的类型为string,因此必须对其进行转换

您可以将上述内容改写为:

daytime := []byte(time.Now().String())
conn.Write(daytime)
或者,在@fabrizioM编写时,您可以使用格式化的编写器进行转换:

fmt.Fprintf(conn, daytime)

另一种方法是使用

fmt.Fprintf(conn, daytime)

另一种方法是使用

fmt.Fprintf(conn, daytime)

因为在服务器和客户端之间传输的数据是字节

在您的案例中,白天显然是字符串格式

因此,您必须使用[]字节(日间)将其转换为字节

无论哪种方式,您都可以导入“bufio”为每个客户机和NewWriter创建一个NewWriter

将使用WriteString(“”)方法。此时,您可以直接度过白天


作为参数~

,因为服务器和客户端之间传输的数据是字节

在您的案例中,白天显然是字符串格式

因此,您必须使用[]字节(日间)将其转换为字节

无论哪种方式,您都可以导入“bufio”为每个客户机和NewWriter创建一个NewWriter

将使用WriteString(“”)方法。此时,您可以直接度过白天


作为一个参数~

更重要的是,Go规范包含一个允许您将字符串转换为字节片的特殊情况。更重要的是,Go规范包含一个允许您将字符串转换为字节片的特殊情况。