关闭
当前位置:首页 - 西甲联赛 - 正文

师说,Github每日Rank引荐:Vlang,最强壮的言语?-辣子鸡制作教程,为健康家庭打造一个健康饮食体系

admin 2020-03-28 176°c

v长安奔奔lang图标

今日要举荐的github开源项目是 Vlang,V是一种简略、快速、安全高效的新编程言语。

star:13.8k

fork:820

license:MIT

相关信息

官网:https://vlang.io

文档: vlang.io/docs

更新日志: github.com/vlang/v/blob/master/CHANGELOG.md

Twitter: twitter.com/v_language

Discord 珀姣苏(primary community): discord.gg/n7c74HM

装置 V: github.com/vlang/v#installing-v-from-source

要害特性

  1. 简练性:不到1小时就能学会(有go言语根底的会很快)
  2. 快速编译:单核每秒能编译最多120万行代码(Intel i5-7500 @ 3.40许冠文GHz师说,Github每日Rank举荐:Vlang,最健壮的言语?-辣子鸡制造教程,为健康家庭打造一个健康饮食系统, SM02化学56L SSD, no optimization)
  3. 简便:整个言语包括其规范库仅不到1MB,无第三方依靠,编写简略web服务仅需65KB
  4. 易于开发女战士:v 编译自身仅需不到1s(官方数据0.15-0.6s)
  5. 功能:和C相同快(差华裔城距不到3%)
  6. 安全性:no null, no globals, no undefined,变量默许是不可变类型
  7. 转译:与黑河C无损转译(V能提高10-25倍编译速度),还能编译成js
  8. 代码热重载:支撑
  9. UI和图形库:内置
  10. REPL:支撑交互式编程
  11. ORM:内置

言语目标比对

各言语及其规范库所需空间(unix/lin师说,Github每日Rank举荐:Vlang,最健壮的言语?-辣子鸡制造教程,为健康家庭打造一个健康饮食系统ux环境),编译时刻比照

各言语比对

装置

当时只要 linux 装置包:https://github.com/vlang/v/releases/download/0.1.21/v_linux.zip

macOS 和 windows 要等候12月份,暂时能够先从源码编译

//macOS 和 windows

git clone https://github.com/vlang/v

cd v

make

v up //更新

//docker

git clo春风又绿江南岸ne https://github.com/vla师说,Github每日Rank举荐:Vlang,最健壮的言语?-辣子鸡制造教程,为健康家庭打造一个健康饮食系统ng/v

cd v

docker build -t vlang .

docker run --rm -it vlang:latest

v

测试运转官方示例

v v.v //编译自身

v//输入V蒸盒号之歌 发动交互式编程

V 0.1.x //成果显现 V 版别

Use Ctrl-C or `exit` to exi张玉贞国语版全集t //windows下 ctrl-c 能够退出

>>>println('hello world') // 输入来完结 hello world

hello world //成果

//运转官方示例

cd examples //进入文件夹

v run tetris/tetris.v //运转 俄罗斯方麦当娜块 V脚本

//windows下假如运转报错 glad祥元通宝.o not found,命令行履行 set VFLAGS=-cc msvc

//然后重试,假如履行句子没有打印回来

//能够履行 set VFLAGS=-keep_c -g -cc msvc -show_c_cmd

//履行成果如下

V编写的俄罗斯方块

热重载

如下图改动方块的 rgb 值,而无需从头编译,直接收效

热重载

部分根本语法

根本类型

bool

string

i8 i16 int i64 i128 (soon)

byte u16 u32 u64 u128 (soon)

f32 f64

byteptr

voidptr

字符串

name := 'Bob'

println('Hello, $name!') // `$` 用于变量插值

println(name.len)

bobby := name + 'by' // 拼接字符串

println(师说,Github每日Rank举荐:Vlang,最健壮的言语?-辣子鸡制造教程,为健康家庭打造一个健康饮食系统bobby) // "Bobby"

println(bobby[面部提高1..3]) // "ob" ,切片操作,左闭右开区间

mut s := 'hello '

s += 'w师说,Github每日Rank举荐:Vlang,最健壮的言语?-辣子鸡制造教程,为健康家庭打造一个健康饮食系统orld'

println(s) // "hello world"

Arrays

// V 洗钱中的Array只能存储同一种类型

mut nums := [1, 2, 3] //mut表明 nums 变量是可变的,V 中变量默许不可变

println(nums) // "[1, 2, 3]"

println(nums[1]) // "2"

nums << 4 //新增元素,这个语法很便利

println(nums) // "[1, 2, 3, 4]"

println(1 in nums) //true, V 中判别包括联系,直接用 in 要害字

ids := [0].repeat(50) // 结构 50个0 的 Array

函数式编程

even := nums.filter(it%2==0) //取偶

words := ['hello', 'world']

upper := words.map(it.to_upper(jugde))

// int类型Array进行map有bug

println(upper) // ['HELLO', 'WORLD']

Maps

mut m 师说,Github每日Rank举荐:Vlang,最健壮的言语?-辣子鸡制造教程,为健康家庭打造一个健康饮食系统:= map[string]int

m['one'] = 1

m['two'] = 2

println(m['one']) // "1"

println(m['bad_key']) // "0"

println('bad_key' in m) // false

m.delete('two')

numbers := {

'one': 1,

'two': 2,

}

for循环

numbers := [1, 2, 3, 4, 5]

for num in numbers鱼香肉丝做法 {

println(num)

}

names := ['Sam', 'Peter']

for i, name in names {

println('$i) $name')

// Output: 0) Sam

// 1) Peter

}

http恳求示例

import time

import http

fn main() {

//or 要害字用于输出反常

resp := http.get('https://vlang.io/utc_now') or 竹鸡{

println('failed to fetch data from the server')

return

}

t := time.unix(resp.text.int())

println(t.format()) // 2d301次列车019-08-16 17:48

}

还有许多高档语法特性,在此就不逐个赘述啦,感兴趣的读者能够前往官网研读文档。

总结

总的来说 Vlang 是适当冷艳的,有不逊于C的速度,比美Go的并发安全处理,语法简练而高雅,体积又远远比C系列小的多,称的上是完美。

可是就现在的迭代版别来说,离真实完美还有不少路。

首要言语自身仍是有不少bug的,语法离齐备也仍有间隔,面向对象之类的语法有所短缺,调集类元素支撑类型也比较单一等等。

其次由于言语比较新,所以社区生态还不完善,没有社区贡献力量的言语是走不远的,也不会有很多老练的第三方依靠。

或许还有许多未发现的缺乏,可是对一种新言语没必要这么严苛,V 自身的定位很好,所需求的仅仅时刻。

笔者写文之时,V的迭代版别是 0.1.22,暂时不建家具品牌议入坑。

据官方声明:V 的安稳版别将在 12月份 宣布,定为师说,Github每日Rank举荐:Vlang,最健壮的言语?-辣子鸡制造教程,为健康家庭打造一个健康饮食系统 1.0.0,到时将有许多惊喜逐个放出,让我们拭目而待!

题外话

假如对你有协助,喜爱就点赞加重视!

笔者坚持每日一更,期望我们mark的一起也多多重视!

标签: 未定义标签
admin 14文章 0评论 主页

  用户登录