V语言 (Vlang) 发布 0.4.1,安全快速可编译的静态语言
V语言 (Vlang) 0.4.1 已发布。主要变化集中在改进语言特性、解析器、标准库,以及编译器内部相关的变化等。
- 实现
Enum.from_string(name string)
将字符串转换为枚举值 - 禁止使用未初始化的函数指针
- 使用默认 expr 修复匿名结构
- 支持使用 const 作为枚举值
- 禁止将静态函数声明为方法接收者 (method receivers)
- 修复
for i++; i<10; i++ {
V 是一个集合了 Go 的简单和 Rust 的安全特性的静态语言,作者表示 V 与 Go 非常相似,如果你了解 Go,那么就已经了解 80% 的 V。V 在 Go 的基础上进行改进之处:https://vlang.io/compare#go。
V 主要特性
- 简单(作者声称可以在不到一小时内学习 V)
- 快速编译(编译器只有 400kb,而且无第三方依赖)
- 易于开发:V 在不到一秒钟的时间内完成编译
- 安全:没有 null、没有全局变量、没有未定义的值、边界检测、默认使用 Immutable 结构体
- 支持 C/C++ 转换
- 方便使用的交叉编译
- 提供跨平台 UI 库
- 内置图形库
- 内置 ORM
- 内置 Web 框架
- ……
示例代码
数据库访问:
struct User { /* ... */ } struct Post { /* ... */ } struct DB { /* ... */ } struct Repo <T> { db DB } fn new_repo<T>(db DB) Repo { return Repo<T>{db: db} } fn (r Repo) find_by_id(id int) T? { // `?` means the function returns an optional table_name := T.name // in this example getting the name of the type gives us the table name return r.db.query_one<T>('select * from $table_name where id = ?', id) } fn main() { db := new_db() users_repo := new_repo<User>(db) posts_repo := new_repo<Post>(db) user := users_repo.find_by_id(1) or { eprintln('User not found') return } post := posts_repo.find_by_id(1) or { eprintln('Post not found') return } }
网络开发:
struct Story { title string } // Fetches top HN stories in 8 coroutines fn main() { resp := http.get('https://hacker-news.firebaseio.com/v0/topstories.json')? ids := json.decode([]int, resp.body)? mut cursor := 0 for _ in 0..8 { go fn() { for { lock { // Without this lock the program will not compile if cursor >= ids.len { break } id := ids[cursor] cursor++ } resp := http.get('https://hacker-news.firebaseio.com/v0/item/$id.json')? story := json.decode(Story, resp.body)? println(story.title) } }() } runtime.wait() // Waits for all coroutines to finish }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
新品上线 | BeikeShop 跨平台 APP 移动跨境电商必备利器!
点击作者:成都光大网络关注我 前言:经过了3个多月的筹备,我们终于上线了“BeikeShop跨平台APP 我们基于uni-app开发框架,构建了这个多平台同步开发解决方案! 现在你有一个更好的解决方案,移动应用开发将变得轻松且高效!接下来将向您详细介绍: BeikeShop是什么? 一款开源好用的跨境电商系统! ✦✦ 一、BeikeShop跨平台APP的优势 BeikeShop跨平台APP 主要有以下优势: 1. 高产出 低投入:仅需少量人力,即可实现同类型商城项目开发,节省开发成本50%以上! 2. 多平台同步开发:仅需少量人力,即可实现同类型商城项目开发,节省开发成本50%以上! 3. 功能快速上线:响应市场迅速变化,一次编译多平台上线。让您可以快速上线新功能,快速占领市场 4. 统一UI体验:我们有一套全新的UI界面设计,多个移动端的界面风格保持高度一致,提升用户体验和满意度 ✦✦ 二、跨平台APP 重点功能介绍 *重点功能 1. 首页可视化装修 首页可视化装修功能,让您可以DIY装修,创造个性化首页。首页图片、幻灯片、服务图标、商品模块等都可以自行调整添加 可自由编辑内...
- 下一篇
Apache APISIX 3.5.0 正式发布
Apache APISIX 3.5.0 现已正式发布,此版本带来了一些新功能和改进的用户体验。包括在主机级别动态配置 TLS 版本、与 Chaitin WAF 的集成、强制删除资源、在独立模式下部署 APISIX 时在配置文件中使用环境变量等。此外,还包含了一些重要的变化。 重大变更 在 request-id 插件中移除雪花算法支持 移除 request-id 插件中的雪花算法支持。该算法引入了对 etcd 的不必要依赖,当 etcd 不可用时,可能会显著影响 APISIX 的性能。请考虑在算法中使用 uuid 选项。 有关更多背景信息,参阅邮件列表中的提案。 相关 PR 见 #9715。 删除对 OpenResty 1.19 的支持 如果你当前正在使用此版本,建议计划升级到 OpenResty 版本 1.21 及更高版本。 相关 PR 见 #9913。 改善 L4 和 L7 代理的可用性并删除 apisix.stream_proxy.only 提高 L4 和 L7 代理的可用性。 此更改删除了 apisix.stream_proxy.only 选项,并简化了启用和禁用 L4 和 L7...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启