vlang 是最近出來的一門編程語言,集成了rust,golang, 等語言的特性,輕量、簡潔、編譯
快速,詳細的比價參數可以參考官方文檔
安裝
目前盡管官方提供了linux以及mac 的二進制文件,但是發現運行還是有點問題,所以最好的方法還是使用源碼編譯
- 源碼編譯v 編譯器
mac:
git clone https://github.com/vlang/v
cd v/compiler
make
linux:
這個就有稍有點問題,主要是gcc 版本,我使用的centos7,需要使用sc 進行gcc 多版本的處理
安裝sc gcc 版本:
sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash
gcc -v
編譯與mac 一樣
git clone https://github.com/vlang/v
cd v/compiler
make
簡單使用
- 簡單代碼
hello_world.v
import http
import os
fn main() {
names := ['Sam', 'Peter']
printnames(names)
printenv()
fetchbaidu()
}
// for each demo
fn printnames(n []string) {
for item in n {
println(item)
}
}
// os env
fn printenv(){
println(os.getenv('USERNAME'))
}
// http demo
fn fetchbaidu() {
resp := http.get('https://www.baidu.com')
println(resp)
}
// function demo
fn printusername(n string) {
println(n)
}
- 代碼說明
以上代碼包含了簡單的http、env、function、array 的代碼,從以上可以看出代碼還是很清晰的 - 運行&&編譯
實際上運行就會有一個編譯的二進制文件 運行命令
v run hello_world.v
效果:
v run hello_world.v
============running hello_world==============================
Sam
Peter
dalong
<!DOCTYPE html><!--STATUS OK-->
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<link rel="dns-prefetch" href="//s1.bdstatic.com"/>
<link rel="dns-prefetch" href="//t1.baidu.com"/>
<link rel="dns-prefetch" href="//t2.baidu.com"/>
<link rel="dns-prefetch" href="//t3.baidu.com"/>
<link rel="dns-prefetch" href="//t10.baidu.com"/>
<link rel="dns-prefetch" href="//t11.baidu.com"/>
<link rel="dns-prefetch" href="//t12.baidu.com"/>
<link rel="dns-prefetch" href="//b1.bdstatic.com"/>
生成生產二進制文件:
v -prod hello_world.v
說明
v 已經內置了好多可選的模塊json http ui,基本是夠用了,同時支持的數據類型也是比較多,有自己的模塊概念(類似rust)
看看后邊的發展,期望在ide ,模塊倉庫上有提升,還有就是跨平台的語言構建(目前測試看着還是不支持的,盡管官方文檔
有描述)。