rust

一个茴字有三种写法——吐槽C#9.0的Records

自古美人都是妖i 提交于 2020-08-08 11:13:25
最近是微软开了Build 2020大会,由于疫情原因,改成了在线举行,Build大会上,C#公布9.0版本。 我个人对于C#的更新向来都是喜闻乐见,乐于接受的,对于博客园上某些人天天嘲讽C#只会增加语法糖的人,我向来对他们不屑一顾,认为他们是井底之蛙。 因此我仔细看了微软发的文章 Welcome to C# 9.0 ,准备好好观摩和学习。但当我看到Records语法时,我就隐隐感觉C#这样玩语法糖要翻车了。 后来看到知乎上的问题 如何评价即将发布的 C# 9.0? ,我稍加思索,愈发觉得Records语法完全是大型翻车现场,因此整理出来我认为的Records的翻车点(兼吐槽)。 首先看官方给出的Records样例 public data class Person { public string FirstName { get; init; } public string LastName { get; init; } } 第一个吐槽点: data class 声明有必要吗?如果要多加一个 data 关键字,直接用 record 不好吗,如果不加关键字,为什么不用 readonly class 啊。 public record Person {} public readonly class Person {} 第二个吐槽点,官方给出上面的等价定义 public data class

编程语言最新排名:Java最受欢迎、JS用户最多

梦想与她 提交于 2020-08-08 10:13:55
IDE工具开发商JetBrains基于2万名开发者,对编程语言的最新情况进行了统计描摹。就受欢迎程度而言,Java高居第一位,但在使用人数上,JavaScript则名列榜首。 欢迎程度的统计方法是,让参与的开发者选出三种立即觉得必要的语音,最后算结果。 被访问时,JetBrains负责人指出,Java最后欢迎是因为很多项目都用JavaScript,但在后者身上并不花费很多时间。 另外就使用情况而言,Python超越了Java,这可能与机器学习浪潮大热有关。 最后是对于新语言的兴趣,Go、Kotlin、Rust、TypeScript、Swift、Dart等在列。 如果有收获?希望老铁们来个三连,点赞、收藏、转发 创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客 大家有什么要说的,欢迎在评论区留言 对了,小编还为大家准备了一套2020最新的Java资料,需要的自取 1、点赞+评论(勾选“同时转发”) 2、关注小编。并私信回复关键字【学习】(一定要私信哦~手机点击我的头像就能看到私信按钮了),部分资料如下 来源: oschina 链接: https://my.oschina.net/u/4347381/blog/4390132

Rust 有问有答之 use 关键字

血红的双手。 提交于 2020-08-08 09:05:48
use 是什么 use 是 Rust 编程语言的关键字。using 是 编程语言 C# 的关键字。 关键字是预定义的保留标识符,对编译器有特殊意义。 using 关键字有三个主要用途: using 语句 定义一个范围,在此范围的末尾将释放对象。 using 指令 为命名空间创建别名,或导入在其他命名空间中定义的类型。 using static 指令 导入单个类的成员。 use的用途是什么 类比using,use的用途有: 用于引用某个外部模块 直接使用枚举值,而无需手动加上作用域 为某个作用域下的方法或作用域创建别名 用于引用某个外部模块 外部模块 a.rs,代码内容如下 mod a { fn print_function() { println!("This is a.print_function."); } } 主函数 main.rs 想要调用 print_function,需要对 mod 标识访问级别,使用关键字 pub。所以 a.rs 的内容变动如下 pub mod a { fn print_function() { println!("This is a.print_function."); } } 主函数 main.rs 调用 print_function 如下,使用关键字 use: use a; fn main() { a::print_function(); }

How to bind() on TCP client side in rust/tokio?

扶醉桌前 提交于 2020-08-08 06:04:38
问题 I have a need to make sure the client side of the TCP connection goes through a particular (IP) interface. The standard way would be to bind() the socket to the IP:0 , before the connect() . I started looking at tokio::net::TcpStream::connect() and friends, which doesn't seem to have a way to do this. I took a step back and looked at std::net::TcpStream , which doesn't have it either. Am I missing something, or do I need to go through some lower level APIs? 回答1: The best way of doing this at

How to bind() on TCP client side in rust/tokio?

那年仲夏 提交于 2020-08-08 06:03:23
问题 I have a need to make sure the client side of the TCP connection goes through a particular (IP) interface. The standard way would be to bind() the socket to the IP:0 , before the connect() . I started looking at tokio::net::TcpStream::connect() and friends, which doesn't seem to have a way to do this. I took a step back and looked at std::net::TcpStream , which doesn't have it either. Am I missing something, or do I need to go through some lower level APIs? 回答1: The best way of doing this at

Hacker News 简讯 2020-07-13

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-08 05:12:18
更新时间: 2020-07-13 23:00 Show HN: Primo – all-in-one IDE, CMS, component library, static site generator - (primo.af) 展示HN:Primo–集成开发环境、内容管理系统、组件库、静态站点生成器 得分:169 | 评论:55 Google to Invest $10B in India - (techcrunch.com) 谷歌将在印度投资100亿美元 得分:260 | 评论:182 Libtorrent adds support for the WebTorrent protocol - (feross.org) Libtorrent增加了对WebTorrent协议的支持 得分:130 | 评论:48 Data Definition and Code Generation in Tcl (2014) [pdf] - (nasa.gov) Tcl中的数据定义和代码生成(2014) [pdf] 得分:17 | 评论:2 The Most Remarkable Legacy System I Have Seen - (thehftguy.com) 我见过的最出色的遗留系统 得分:239 | 评论:82 The greatest privilege we never talk

How can I combine nom parsers to get a more bit-oriented interface to the data?

不问归期 提交于 2020-08-08 04:02:53
问题 I'm working on decoding AIS messages in Rust using nom. AIS messages are made up of a bit vector; the various fields in each message are an arbitrary number of bits long, and they don't always align on byte boundaries. This bit vector is then ASCII encoded, and embedded in an NMEA sentence. From http://catb.org/gpsd/AIVDM.html: The data payload is an ASCII-encoded bit vector. Each character represents six bits of data. To recover the six bits, subtract 48 from the ASCII character value; if

#新闻拍一拍# Windows DNS 服务器存在风险高达 10 分的 17 年之久的严重漏洞

隐身守侯 提交于 2020-08-07 19:54:53
Windows DNS 服务器存在风险高达 10 分的 17 年之久的严重漏洞 微软警告称,该公司将一个存在了 17 年的 Windows DNS 服务器关键漏洞列为“可蠕虫”。这样的漏洞可能允许攻击者创建特殊的恶意软件,在 Windows 服务器上远程执行代码,并创建恶意的 DNS 查询,甚至最终可能导致企业和关键部门的基础设施被入侵。微软在通用漏洞评分系统(CVSS)上给出了 10 分的最高风险分,强调了问题的严重性。作为对比,WannaCry 攻击所使用的漏洞在 CVSS 上的评分为 8.5 分。 来源: cnBeta.COM 拍一拍:虽然相信用 Windows 做 DNS 服务的不算多,但是鉴于 Windows 服务器数量并不算少,尤其是在企业环境中,因此,这个高分漏洞需要密切注意。 OpenCV 5 的开源协议将从 BSD 变更为 Apache 2 计算机视觉库 OpenCV 即将迎来 20 周年,其重要版本 OpenCV 5 也发布在即。OpenCV 官方宣布,随着此版本的推行,OpenCV 的开源许可协议将从三句版 BSD 变更为 Apache 2。BSD 协议已很难满足快速发展的计算机视觉领域,尤其因为该协议不涉及专利,而使用该协议的代码很有可能包含一些专利算法的实现。为了避免这个问题,OpenCV 选择不接收有专利的算法。这样做虽然保障了安全性

Substrate开发者文档入口收藏

北战南征 提交于 2020-08-07 18:05:49
很久没有记录了,最近发现 登链社区 的 翻译计划 正在翻译 Substrate开发者文档 ,记一下顶层入口 一些专业知识是需要的 为了充分利用Substrate,您应该对区块链概念和基本密码学有很好的了解。 例如:区块头,区块,客户端,哈希,交易和签名等术语应该很熟悉。 目前,您还需要具备Rust开发知识,才能采用 Substrate 进行定制化(尽管最终,我们的目标并非如此) Substrate 是具有完全通用的状态转换功能(STF: State Transition Function)的区块链开发框架和用于共识,网络和配置的模块化组件。 由于它是“完全通用的”,因此它定义了标准和约定(尤其是Substrate运行时模块库-又名FRAME,它为STF提供底层的基础数据结构),从而使快速开发区块链成为现实。 用法 Substrate 被设计可通过以下三种方式之一使用: 1、 使用 Substrate 节点 : 您可以运行预先设计好的Substrate节点,并配置使用包含默认节点运行时的创世块。 在这种情况下,您只需要配置JSON文件就可以启动一个自己链。 此时拥有的很少的可定制性,仅仅允许你更改运行时模块的初始参数,比如:余额,质押(staking),出块周期,费用,治理。关于这部分的教程,请参考 用 Substrate启动一个私有网络 2、 使用 Substrate FRAME

那些要替代C和Java 的后浪,如今混得怎么样?

房东的猫 提交于 2020-08-07 11:35:21
  近日,TIOBE 公布了 2020 年 5 月的编程语言排行榜,C 语言时隔 5 年重返榜首,Java 和 Python 分列二、三位。   前段时间,B 站推出的青年节演讲视频《后浪》在朋友圈刷屏,看着“后浪”们丰富多彩的生活,同事们纷纷自嘲自己就是被拍在沙滩上的那一个,被生活疯狂蹂躏。   然而在编程语言界,“后浪”们掀起的波澜则十分有限。与近年来陆续涌现的新兴编程语言相比,那些出道即巅峰、一巅几十年的“前浪”们,似乎还没有要退位让贤的意思。   在 TIOBE 公布的最新编程语言排行榜中,排名前十的语言中有 8 个诞生于上个世纪 90 年代,最“年轻”的是诞生于 2001 年的 C#,而位于榜首的 C 语言距今已有 48 年的历史。   如果我们再来纵观自 2002 年以来的编程语言排行榜,基本上也还是这些老牌编程语言的身影,尤其是 C 与 Java 这两位“前浪”老大哥的江湖地位一直难以撼动。   数十年来,陆续出现的新兴编程语言不在少数,其中不乏一些以取代某种老语言为目的而设计的,那么这些编程语言界的“后浪”们,是否能够追上“前浪”们的脚步呢?下面不妨让我们来看看这些年编程界的知名“后浪”们。   1、前浪 C++(1979)VS 后浪 Go(2009)   诞生于 2009 年的 Go 语言堪称编程语言中的“星二代”。Go 的早期作者有三人,分别是 Rob Pike