Nim lang 如何在Nim中声明可为null的字段?

Nim lang 如何在Nim中声明可为null的字段?,nim-lang,Nim Lang,stock\u符号是可选的,它只存在于一些公司,在Nim中声明它的正确方式是什么 我必须使用ref还是有其他方法 type Company = object name: string stock_symbol: string echo Company(name: "Microsoft", stock_symbol: "MSFT") echo Company(name: "Kinetic", st

stock\u符号
是可选的,它只存在于一些公司,在Nim中声明它的正确方式是什么

我必须使用
ref
还是有其他方法

type
  Company = object
    name:         string
    stock_symbol: string

echo Company(name: "Microsoft", stock_symbol: "MSFT")
echo Company(name: "Kinetic",   stock_symbol: nil)
和复合型类似的问题,通常你需要知道证券交易所和符号

type
  SymbolWithExchange = object
    exchange: string
    symbol:   string

  Company2 = object
    name:         string
    stock_symbol: SymbolWithExchange

echo Company2(
  name:         "Microsoft", 
  stock_symbol: SymbolWithExchange("NYSE", "MSFT")
)
echo Company2(name: "Kinetic",   stock_symbol: nil)

似乎应该使用
选项[T]

import options

type
  Company = object
    name:         string
    stock_symbol: Option[string]

echo Company(name: "Microsoft", stock_symbol: some("MSFT"))
echo Company(name: "Kinetic",   stock_symbol: none(string))

import options

type
  SymbolWithExchange = object
    exchange: string
    symbol:   string

  Company2 = object
    name:         string
    stock_symbol: Option[SymbolWithExchange]

echo Company2(
  name:         "Microsoft", 
  stock_symbol: some(SymbolWithExchange(exchange: "NYSE", symbol: "MSFT"))
)
echo Company2(name: "Kinetic",   stock_symbol: none(SymbolWithExchange))