内容简介:V (Vlang) 0.2 发布了,作者宣布这是首个主要版本,更新重点是提升稳定性和优化编译时(compile-time)内存管理。 部分更新亮点 通过启用-autofree参数对 compile-time 内存进行管理(计划在 0.3 中默认启用) 提供...
V (Vlang) 0.2 发布了,作者宣布这是首个主要版本,更新重点是提升稳定性和优化编译时(compile-time)内存管理。
部分更新亮点
- 通过启用
-autofree
参数对 compile-time 内存进行管理(计划在 0.3 中默认启用) - 提供对 iOS 和 Android 的早期支持
- 引入 IO 流
- 引入 channel 和 lock
- 引入内联结构体 (Struct embedding)
- 支持通过 GitHub Actions 自动构建和部署 Linux/Windows/macOS 的 V 二进制文件
- 支持 C++ 编译器:C 后端生成的代码现在可以由 C++ 编译器编译
- 泛型语法更简洁,例如使用
foo(5)
代替foo<int>(5)
- V 现在可通过 WASM 在浏览器中运行
- 完善文档
- ……
详情查看 https://github.com/vlang/v/discussions/7474
V 0.3 Roadmap:https://github.com/vlang/v/blob/master/0.3_roadmap.txt
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
}
以上所述就是小编给大家介绍的《V (Vlang) 首个主要版本 0.2 发布,安全快速可编译的静态语言》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- PureScript 0.12.1 发布,可编译成 JS 的静态语言
- 一年回顾:测试可编程基础设施
- 程序媛大姐姐的可编程手表
- OpenGL(十一) 可编程管线 基础光照 的实现
- KubeVela 1.0:开启可编程式应用平台的未来
- 内容可编程的区块链:以太坊的未来
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
ACM国际大学生程序设计竞赛
俞勇 编 / 2012-12 / 29.00元
《ACM国际大学生程序设计竞赛:知识与入门》适用于参加ACM国际大学生程序设计竞赛的本科生和研究生,对参加青少年信息学奥林匹克竞赛的中学生也很有指导价值。同时,作为程序设计、数据结构、算法等相关课程的拓展与提升,《ACM国际大学生程序设计竞赛:知识与入门》也是难得的教学辅助读物。一起来看看 《ACM国际大学生程序设计竞赛》 这本书的介绍吧!