You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Crystal Lang中访问模块定义的VERSION版本常量?

如何访问Crystal Lang模块中的VERSION常量

嘿,这个问题其实挺简单的!按照Crystal社区的惯例,VERSION常量是定义在对应模块内部的,所以访问它的方式非常直接,分两种常见场景来看:

1. 在你自己的项目内部访问

假设你项目里有一个模块MyAwesomeLib,版本常量定义在src/my_awesome_lib/version.cr里,代码长这样:

module MyAwesomeLib
  VERSION = "1.2.3" # 遵循SemVer规范的版本号
end

只要你在项目的主文件(比如src/my_awesome_lib.cr)里已经require了这个version文件:

require "./my_awesome_lib/version"

# 其他模块代码...

那在项目的任何其他文件里,只要你已经require了主模块,就可以直接通过模块名+双冒号来访问这个常量:

puts "当前版本: #{MyAwesomeLib::VERSION}"
# 输出:当前版本: 1.2.3

2. 访问依赖库的VERSION常量

如果你是通过shard.yml引入了第三方库,比如某个叫crystal-fancy的shard,它遵循同样的惯例把VERSION放在自己的模块里。那只要你在代码里require了这个库:

require "crystal-fancy"

就可以直接用库的模块名来访问它的版本:

puts "依赖库版本: #{CrystalFancy::VERSION}"

需要注意的是,有些库可能会把VERSION放在顶层命名空间,但这不是主流惯例——按照社区通用做法,版本常量一定是依附在对应模块内部的,所以找对模块名就没问题啦!

内容的提问来源于stack exchange,提问作者dkimot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:10:10