gpt4 book ai didi

go - 如何将 slice 与字符串进行比较?

转载 作者:数据小太阳 更新时间:2023-10-29 03:39:44 26 4
gpt4 key购买 nike

package main

import (
"fmt"
"net"
)

func main() {

msg := make([]byte, 1024)

//Basic variables
port := ":2002"
protocol := "udp"

//Build the address
myaddr, err := net.ResolveUDPAddr(protocol, port)
if err != nil {
fmt.Println("Wrong Address")
return
}

//Output
fmt.Println("Reading " + protocol + " from " + myaddr.String())

//Create the connection
connection, err := net.ListenUDP(protocol, myaddr)
if err != nil {
fmt.Println(err)
}

//receive msg
for {
_, useraddr, err := connection.ReadFromUDP(msg)
fmt.Println("msg from :", useraddr)

if err != nil {
fmt.Printf("Some error %v", err)
continue
}
go sendResponse(connection, useraddr)
}
}

这是我的 UDP 服务器,我正在制作游戏。所以我想,如果客户端发送“let's play”,服务器运行 go sendresponse 函数。如果不是“let's play”,它将不会运行。

我想我应该比较 msg 但我不知道如何比较。谢谢:)

最佳答案

也许,像这样:

//receive msg
msg := make([]byte, 1024)
for {
n, useraddr, err := connection.ReadFromUDP(msg[:cap(msg)])
msg = msg[:n]
fmt.Println("msg from :", useraddr)
if err != nil {
fmt.Printf("Some error %v", err)
continue
}
if string(msg) == "let's play" {
go sendResponse(connection, useraddr)
}
}

表达式 msg[:cap(msg)]msg 缓冲区长度设置为其全部容量。

语句 msg = msg[:n]msg 缓冲区长度设置为读取的实际长度。

string(msg)表达式将msg类型[]byte转换为string类型进行比较.

关于go - 如何将 slice 与字符串进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50817989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com