rust不能修改全局变量,rust启动线程后,线程中修改的变量其所有权会移交给线程,其他线程、主线程无法再修改,多个线程之间需要使用channel通信。
(虽然rust允许通过锁机制动态获取一个变量的所有权)
听起来很像你想要的效果?
是否同意呢?实际使用上,其他语言可以在init阶段初始化各个全局client,比如数据库、远端服务等,这在rust中会变得很麻烦,虽然也不是不行。。。
另外就是要收集各个worker线程的结果,不方便用容器,又不想用通信机制,最后要么闭包+map reduce,要么开个大数组给每个worker一个切片搞了,挺丑。。。
当然我这是只学了几个月rust的粗浅感受,肯定不是最佳实践。但是和写python,哪怕是和写go比,也是非常蛋疼的感受
【 在 hgoldfish 的大作中提到: 】
: 那,假如,,我说假如,golang 官方要求 goroutine 不能访问外部的变量,不搞闭包,所有与其它模块的数据交换要么通过 chan 要么通过简单直接的函数调用。
: 你们会同意吗?
: 我在仿 golang 设计一门语言。
: ...................
--
FROM 223.160.128.*