V语言 (Vlang) 支持 lambdas


数据技术都能四世同堂,凭什么开发 30 岁就要被干掉?

V 语言终于有 lambdas 了。

V 是一个集合了 Go 的简单和 Rust 的安全特性的静态语言,作者表示 V 与 Go 非常相似,如果你了解 Go,那么就已经了解 80% 的 V。V 在 Go 的基础上进行改进之处:https://vlang.io/compare#go。

V 主要特性

  • 简单(作者声称可以在不到一小时内学习 V)
  • 快速编译(编译器只有 400kb,而且无第三方依赖)
  • 易于开发:V 在不到一秒钟的时间内完成编译
  • 安全:没有 null、没有全局变量、没有未定义的值、边界检测、默认使用 Immutable 结构体
  • 支持 C/C++ 转换
  • 方便使用的交叉编译
  • 提供跨平台 UI 库
  • 内置图形库
  • 内置 ORM
  • 内置 Web 框架
  • ……

根据V语言仓库的 PR 合并信息,目前已添加对短 lambda 表达式的支持,例如:

a.sorted(|x,y| x > y)

▲ https://github.com/vlang/v/pull/19390

示例代码

  • 使用函数/表达式进行回调,从外部源获取它们的值
import os

fn f( cb fn() string ) string { return cb() }

dump( f(fn() string { return os.args[0] }) )

// the same, just shorter:
dump( f(||os.args[0]) ) 

打印结果如下:

[a.v:5] f(anon_fn): /v/vnew/a
[a.v:6] f(|| os.args[0]): /v/vnew/a

相關推薦

2023-09-06

V语言 (Vlang) 0.4.1 已发布。主要变化集中在改进语言特性、解析器、标准库,以及编译器内部相关的变化等。 实现Enum.from_string(name string)将字符串转换为枚举值 禁止使用未初始化的函数指针 使用默认 expr 修复匿名结构 支

2022-07-06

这对编写内核和没有 FPU 的嵌入式系统很有用 TCC 现在与语言捆绑在一起,这允许在不依赖外部 C 编译器的情况下构建 V 程序 Null 可以只在 unsafe 的情况下使用 新模块 compress.gzip 大量的 net/ net.http/ vweb 修正 支持 IPv6 Go2V

2024-04-30

。 目前:java,kotlin,javascript,node.js,python,android 语言环境可用。go,rust,c/c++,.net 正在开发中。 最近更新 优化 python 协议跨语言编码解兼容 优化 python 异步栈的日志记录 for Python Helloworld 演示 Server async de

2024-04-25

, kcp 传输。 目前:java,kotlin,javascript,node.js,python 语言环境可用。go,rust,c/c++,.net 正在开发中。 for Java 更新 调整 本端会话关闭时,也触发本端的 onClose 事件 优化 ws 连接控制,避免非法恶意空连 优化 socketd-tr

2023-09-12

回顾 Scala 2.13.11 现已发布。这是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。此版本更新亮点如下: Collections 更快的Vectorconcatenation(#10159) 新LinkedHashMap/LinkedHashSet实现(#10221

2023-12-02

在已经可用!本次发布为大家带来了三方面的重点更新:语言、工具链、社区集成 & 扩展支持。 使用功能更完善错误更少的 KCL 语言、工具链和 IDE 提升代码编写体验和效率 全新的 KCL 命令行工具,集成 KCL 包管理,doc, te

2022-07-27

s 文字。 Kotlin 对 Kotlin 1.7.0 功能的支持 添加了对最新语言版本 Kotlin 1.7.0 中引入的功能的支持。 IDE 现在可以正确呈现绝对不可空的类型,并提供选择加入要求的实用检查。 Kotlin 调试器中对数据流分析的支持 已将 Kotlin

2022-08-16

。 从 35.0.1 版本开始,CKEditor 5 将提供 41 种完全翻译的语言,其中 38 种是新的、专业的、商业的翻译。虽然软件的基本语言是英语,但新版本也将提供许多其他欧洲语言、中日韩语言、从右到左的文字语言等。 增强编辑器功

2022-11-17

限的问题。#557 66325:修复了包含 lambda 表达式的表达式语言评估中的并发问题。 其他 更新到 Commons Daemon 1.3.2。 66323:将模块启动参数从移动 JDK_JAVA_OPTIONS到JAVA_OPTS,现在最低 Java 版本为 11,并且始终需要这些选

2023-11-10

; KCL 是一个 CNCF 基金会托管的基于约束的记录及函数语言并通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑

2022-11-01

标准库变更等。 Idris 是一个类似 Haskell 的纯函数编程语言,类型系统支持 dependent types。 依赖模式匹配的依赖类型系统 简单的 C 函数接口 编译器级别的编码支持 where 语句,with 规则,简单的 case 表达式,模式匹配 let 和

2023-03-28

MKVToolNix GUI:当第一次打开偏好设置时,如果操作系统的语言对 MKVToolNix 不可用,用户界面可能会预先选择界面语言列表中的第一个条目。例如:此前,如果系统语言设置为en_GB,尽管 MKVToolNix 支持en_US,但 MKVToolNix 默认不会选

2022-09-08

集成开发环境,同时支持 C/C++、PHP、JavaScript 和其他编程语言。 主要变化: 对语言服务器协议 (LSP) 支持进行了一系列的更新 Maven 集成更新 改进 YAML 编辑支持 更新对 PHP 语法的处理 优化 JDK 下载器 初步支持 Jakar

2023-07-18

在已经可用!本次发布为大家带来了三方面的重点更新:语言、工具链、社区集成 & 扩展支持。 使用功能更完善错误更少的 KCL 语言和 IDE 提升代码编写体验和效率 使用 KPM, KCL OpenAPI 和 OCI Registry 等工具直接使用和共享您