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

来源: OSCHINA
编辑:
2019-06-23 08:02:00

编程语言 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 
} 
展开阅读全文
点击加入讨论🔥(64) 发布并加入讨论🔥
本篇精彩评论
又一门语言,我的头发在飞,妈呀,最后一簇了
2019-06-24 14:36
14
举报
就给编程语言的字母不多了
2019-06-24 10:45
10
举报
算了,还是搞我的 java吧
2019-06-23 16:58
6
举报
妈耶 这一看和go一样一样的
2019-06-23 16:52
3
举报
还好 我还有头发可以玩一会
2019-06-26 02:48
1
举报
64 评论
33 收藏
分享
返回顶部
顶部