如何在Gleam中仅导入类型构造器?
如何在Gleam中正确导入Option类型的None构造器?
你之前的写法错误在于,None是Option类型的构造器而非独立类型,不能用type关键字来导入它。以下是几种正确的实现方式:
方式一:单独导入None构造器
直接导入构造器名称即可,不需要type前缀:
import gleam/option.{None} pub type MyType { MyType(value: Option(Int)) } pub fn build_type() { MyType(None) }
方式二:同时导入Option类型和None构造器
如果代码中需要用到Option类型做注解,可以一次性导入类型和构造器:
import gleam/option.{Option, None} pub type MyType { MyType(value: Option(Int)) } pub fn build_type() { MyType(None) }
方式三:导入整个模块后通过模块名访问
也可以导入整个gleam/option模块,之后通过模块前缀来访问类型和构造器:
import gleam/option pub type MyType { MyType(value: option.Option(Int)) } pub fn build_type() { MyType(option.None) }
补充说明
在Gleam里,类型(比如Option)和它的构造器(None、Some)是不同的概念:
- 用
type关键字只能导入类型本身 - 导入构造器时直接写构造器名称即可,无需额外关键字
内容的提问来源于stack exchange,提问作者Ruslan Ustitc
相关产品推荐
相关产品推荐

