| 
   编程语言 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  }  
                          (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |