Ruby 类型系统:RBS 与 Sorbet 全面解析
1. 静态类型与 Ruby 类型系统目标
静态类型代码通常比动态代码灵活性差,且更难修改,但很多人认为这是优点。Ruby 类型系统的目标是在不放弃 Ruby 灵活性的前提下,尽可能获得类型化语言的诸多益处。
2. 官方 Ruby 类型系统:RBS
RBS(Ruby Signature)是官方的 Ruby 类型系统,通过创建单独的文件来包含代码的类型签名信息。
2.1 编写 RBS 文件
以 Aaagmnr gem 为例,其 sig 目录用于存放类型信息。最初的 aaagmnr.rbs 文件仅表明 Aaagmnr 模块有一个 VERSION 常量,类型为 String ,实用性不大。完整的 RBS 文件如下:
module Aaagmnr
class Finder
@signatures: Hash[String, Array[String]]
def self.from_file: (String file_name) -> Finder
def initialize: (Array[String] dictionary_words) -> void
def lookup: (String word) -> Array[String]
def signature_of: (String wor
超级会员免费看
订阅专栏 解锁全文
45

被折叠的 条评论
为什么被折叠?



