尝试在 Clojure CLR 中执行等效的 c# 代码
using System.Net;
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint remote = (EndPoint) sender;
recv = sock.ReceiveFrom(data, ref remote);
我在 Clojure 中尝试过的不起作用:
(let [
sender (IPEndPoint. (IPAddress/Any) 0)
^EndPoint remote ^EndPoint sender
recv (.ReceiveFrom sock data (by-ref remote))
]
(println (.ToString remote))
;; Do something with data...
)
它只显示 0.0.0.0:0 我认为 ref 不起作用,但也不确定提示/强制转换语法。
我在这里查看了有关参考https://github.com/richhickey/clojure-clr/wiki/CLR-Interop的信息 以及这里关于指定类型的信息:https ://github.com/clojure/clojure-clr/wiki /指定类型