v语言初体验小结

最近github上开源了一个"新语言"vlang,火的不得了,我不信,于是乎,尝试了一下,真香。

以下内存均来自https://www.v-lang.cnv语言文档 by 20190701

ubuntu安装vlang

依赖安装

这里采用的是ubuntu的机器,centos的会报错,暂时没有去操作

查看机器型号

$ uname -a
Linux liwang 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$

安装必要依赖 gcc 和 make

$ sudo apt install gcc make -y
$

下载编译安装v

$ git clone https://github.com/vlang/v
$ cd v/
$ make
$ sudo ln -s ~/v/v /usr/local/bin/

测试

$ v
V 0.1.10
Use Ctrl-D or `exit` to exit
For now you have to use println() to print values, this will be fixed soon

>>> print ('hello world')
hello world
>>> $
$

Hello world

代码

$ cat hello.v
fn main() {
    /*
    * 注意: v 语言中 字符串不允许 使用双引号,至少在 v1.0版本不行
    */
    println('Hello World')
}
$

编译运行

编译.v文件

$ v hello.v
$ ./hello && rm -f hello
Hello World
$

编译运行

直接使用 v run file.v 可以编译并且运行二进制文件

$ v run hello.v
============ running hello ============
Hello World
$

函数

语法/案例

函数和golang类似 语法

fn 函数名称 (形参) 返回值 {
函数体
}

例子

$ cat func1.v

fn v_add(x,y int) int {
    z := x + y
    return z
}

fn main() {
    a := 1
    b := 2

    c := v_add(a,b)
    println(c)
}
$

编译运行

$ v run func1.v
============ running func1 ============
3
$

数组

数组基本用法

代码

$ cat arrays.v
fn main() {
    // 定义数组
    test_array := [1,2,3]

    // 打印数组
    println(test_array)

    // 输出数组长度
    println(test_array.len)

    // 判断数组是否包含 1
    println(test_array.contains(1))

    // 判断数组是否包含 4
    println(test_array.contains(4))
}
$

编译执行

$ v run arrays.v
============ running arrays ============
[1, 2, 3]
true
false
$

可变数组

默认数组定义好之后,是不能修改其长度的,而在其前面加上关键字 mut ,则可以实现变长数组,例如

代码

$ cat arrays_1.v
fn main() {
    // 定义可变数组
    mut other_arrays := [1,2,3]

    // 打印数组长度
    println('数组变化前长度')
    println(other_arrays.len)

    // 打印数组内容
    println('数组内容')
    println(other_arrays)

    // 追加数组值
    other_arrays << 4

    // 打印数组长度
    println('数组追加后长度')
    println(other_arrays.len)

    // 打印数组内容
    println('数组内容')
    println(other_arrays)

}
$

编译运行

ps: 目前的方法我只找到了追加,还未找到删除,[尴尬--]

$ v run arrays_1.v
============ running arrays_1 ============
数组变化前长度
数组内容
[1, 2, 3]
数组追加后长度
数组内容
[1, 2, 3, 4]
$

未完待续。。。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • v语言初体验小结

    最近github上开源了一个"新语言"vlang,火的不得了,我不信,于是乎,尝试了一下,真香. 以下内存均来自https://www.v-lang.cnv语言文档 by 20190701 ubuntu安装vlang 依赖安装 这里采用的是ubuntu的机器,centos的会报错,暂时没有去操作 查看机器型号 $ uname -a Linux liwang 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86

  • Django3.0 异步通信初体验(小结)

    此前博主曾经写过一篇博文,介绍了Django3.0的新特性,其中最主要的就是加入对ASGI的支持,实现全双工的异步通信. 2019年12月2日,Django终于正式发布了3.0版本.怀着无比的期待,我们来尝试一下吧! (附ASGI官方文档地址:https://asgi.readthedocs.io/en/latest/extensions.html) 一.创建Django3工程 利用Pycharm的方便,直接通过virtualenv创建虚拟环境,并安装Django3.0. 打开控制台,看看都安装

  • vue-cli3+typescript初体验小结

    前言 气势汹涌,ts似乎已经在来的路上,随时可能敲门. 2015年,三大前端框架开始火爆的时候,我还在抱着Backbone不放,一直觉得可以轻易转到其他框架去.后来换工作,现实把脸都打肿了,没做过vue.react.angular?不要! 今天,不能犯这个错了,毕竟时不我与,都快奔三了. vue-cli3 vue-cli3的详细功能推荐官方文档,不在本文介绍范围内. 安装: npm install -g @vue/cli 检查安装成功与否: vue --version 创建项目: vue cre

  • Spring Cloud Data Flow初体验以Local模式运行

    1 前言 Spring Cloud Data Flow是什么,虽然已经出现一段时间了,但想必很多人不知道,因为在项目中很少有人用.不仅找不到很多中文资料,英文资料也一样少的可怜.这让探索的路更加艰辛,也更加有趣吧. Spring Cloud Data Flow是基于微服务的,专门用于流式和批式数据处理的框架. 2 基本概念 2.1 数据处理模式 数据处理有两种模式,分别是Streaming流式处理和Batch批次处理.Streaming是长时间一直存在的,你数据来了我就处理,没来我就等着,基于消

  • DevEco Studio 2.0开发鸿蒙HarmonyOS应用初体验全面测评(推荐)

    在9月10日召开的华为开发者大会上,宣布了鸿蒙2.0系统正式面世,同时开启了Beta版本的测试和开源网站.对于开发者来说两个最关键的点值得关注:一个是Beta版的开发工具,一个是开源网站. 一.开源网站 在开发者大会上宣布将HarmonyOS源代码捐赠给中国开放原子开源基金会,并在大会上公布了鸿蒙系统的开源路线. 官网地址: OpenHarmony 官方源码地址 二.开发工具 鸿蒙使用基于Intellij IDEA深度定制研发的DevEco Studio作为其开发工具.官方下载地址如下: Dev

  • node.js爬虫框架node-crawler初体验

    百度爬虫这个词语,一般出现的都是python相关的资料. py也有很多爬虫框架,比如scrapy,Portia,Crawley等. 之前我个人更喜欢用C#做爬虫. 随着对nodejs的熟悉.发现做这种事情还是用脚本语言适合多了,至少不用写那么多的实体类.而且脚本一般使用比较简单. 在github上搜索node+spider,排名第一的就是node-crawler github:https://github.com/bda-research/node-crawler 简单使用 npm 安装: np

  • JetBrains Fleet 初体验

    几天前获得了fleet的体验资格.长话短说,今天就来和你一起看看现在的fleet都有啥 先看名字–fleet 什么是fleet? n. 舰队;捕鱼船队;(一国的)全部军舰,海军 看来,JetBrains是想让"One IDE to code it all."的口号落实,真正的实现一人成军.配合它自带的Distributed mode,前端后端统一管理.或许真正的Monorepo就会来临? 再看图标 铁灰色底座配合缺了两个缺口和天空蓝淡紫渐变的圆球主体,我猜它-抱歉我看不懂,于是我当场质

  • java Spring Boot的介绍与初体验

    目录 Spring Boot 介绍 系统要求 构建工具 Servlet 容器 初体验 总结 Spring Boot 介绍 Spring Boot用于创建可运行的.独立的.生产级的基于Spring的应用程序.Spring Boot对Spring和第三方库持约定大于配置的观念,以便可以轻松上手.大多数Spring Boot应用程序只需要很少的配置. Spring Boot可以通过使用java -jar或更传统的war包部署来启动Java应用程序,Spring Boot的目标是: 为所有Spring开

  • JavaScript入门初体验书写方式

    目录 javascript历史 javascript是什么? javascript的作用 浏览器执行js简介 javascript的组成 ECMAScript javascript初体验 行内式 内嵌JS 外部JS文件 结语 javascript历史 布兰登艾奇( Brendan Eich ,1961年-). 神奇的大哥在1995年利用10天完成 JavaScript 设计. 网景公司最初命名为 LiveScript ,后来在与 Sun 合作之后将其改名为 JavaScript .(很大部分也是

  • vue.js 初体验之Chrome 插件开发实录

    背景 对于经常和动画开发打交道的开发者对于Animate.css这个动画库不会陌生,它把一些常见的动画效果都封装起来了,非常实用.但是有时候在开发中,仅仅只是需要某一两个动画效果,把整个CSS文件都引入,这样不是太好. 需求就出现了,能不能有一个工具可以直接预览Animate.css对应的动画效果,并且生成对应的动画代码呢? 作为一个UI开发,平时跟Chrome浏览器打交道最多,于是就整了一个Chrome插件可以及时预览对应Animate.css中的动画效果并生成对应的动画代码,这样在实际开发中

随机推荐