安全的全新编程语言 V 发布首个可用版本

局长
 局长
发布于 2019年06月23日
收藏 32

编程语言 V 的作者今天发布了 V 的首个可用版本(预构建的二进制文件即将推出)。

源码获取地址:https://github.com/vlang/v/releases/tag/v0.0.12

作者展示的使用 V 开发的应用示例

V 是一个集合了 Go 的简单和 Rust 的安全特性的新语言。

主要特性:

  • 快速编译(编译器只有 400kb,而且无第三方依赖)
  • 安全
  • C/C++ 转换

示例代码:

数据库访问:

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 
} 
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:安全的全新编程语言 V 发布首个可用版本
加载中

精彩评论

跑来跑去
又一门语言,我的头发在飞,妈呀,最后一簇了
猴哥_Z
猴哥_Z
就给编程语言的字母不多了
二进制艺术
二进制艺术
算了,还是搞我的 java吧
O
OSC_WoZfnS
妈耶 这一看和go一样一样的

最新评论(62

一只敲代码的猫
一只敲代码的猫
到现在还在一门语言上挣扎
空真丶鹏
还好 我还有头发可以玩一会
Domineering
Domineering
在ubuntu下编译通过,但例子只有hello world运行成功,其他的都报错,用一会就自动退出,太不好用了
--------------------
--------------------
看仓库作者头像很年轻啊,难道是天才选手?
f
fofso
看起来很NB,试试就编译失败,等等再看
有力量的神经病
有力量的神经病
哪位牛逼的国人大大去开发一门中国自主知识产权的语言:han语言😈👽
久永
久永
这个语言有啥来头?感觉开局就挺牛逼啊!
一个灰
一个灰
没编译成功,有人编译出来了吗?
fuwu360
fuwu360
算了。人生苦短,还是用我java,python
开源中国-首席村长
开源中国-首席村长
啥时候我去搞个“B语言”出来
海阔天2019
先有A语言、B语言,才有C语言。B语言已经有了。
返回顶部
顶部