首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nim支持类型推断吗?

Nim支持类型推断吗?
EN

Stack Overflow用户
提问于 2020-01-09 03:00:51
回答 3查看 564关注 0票数 1

我在Nim中看到了这个例子,它需要明确的intbool类型规范,尽管有足够的信息来推断两者(就像TypeScript那样)。

如果删除了这些类型,它就不会编译,Nim支持类型推断吗?

代码语言:javascript
复制
import sequtils

let list = @[1, 2, 4]
echo list.filter do (x: int) -> bool: x > 2
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-25 07:21:23

您需要的是糖模块中的=>宏。

代码语言:javascript
复制
echo list.filter(x => x > 2)

来自文件:

用于无菌程序的语法糖。

代码语言:javascript
复制
macro `=>`(p, b: untyped): untyped
代码语言:javascript
复制
proc passTwoAndTwo(f: (int, int) -> int): int =
  f(2, 2)

passTwoAndTwo((x, y) => x + y) # 4

用于过程类型的语法糖。

代码语言:javascript
复制
macro `->`(p, b: untyped): untyped
代码语言:javascript
复制
proc pass2(f: (float, float) -> float): float =
  f(2, 2)

# is the same as:

proc pass2(f: proc (x, y: float): float): float =
  f(2, 2)
票数 3
EN

Stack Overflow用户

发布于 2020-01-09 03:37:28

从手册中:

自动类型只能用于返回类型和参数。对于返回类型,它使编译器从例程体推断类型:

http://nim-lang.github.io/Nim/manual.html#types-auto-type

票数 3
EN

Stack Overflow用户

发布于 2020-01-09 03:17:26

Nim支持类型推断吗?

根据主页的说法,尼姆有一个…

具有局部类型推理、元组、泛型和和类型的现代类型系统。

粗体强调地雷

另外,语言手册提到了大约10个不同地方的类型推断。

Wiki页面将类型推断作为一个特性列出。

因此,最后,答案是“是”,至少根据官方文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59656646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档