<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>类型类 on PlumePHP</title><link>https://plumephp.com/tags/%E7%B1%BB%E5%9E%8B%E7%B1%BB/</link><description>Recent content in 类型类 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 28 Sep 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E7%B1%BB%E5%9E%8B%E7%B1%BB/index.xml" rel="self" type="application/rss+xml"/><item><title>Scala 类型级编程实战：Shapeless、Match Types 与编译期计算</title><link>https://plumephp.com/scala-typelevel-programming/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/scala-typelevel-programming/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;普通编程用&lt;strong&gt;值&lt;/strong&gt;计算，类型级编程用&lt;strong&gt;类型&lt;/strong&gt;计算——把「参数的数量、单位、状态机的合法状态」写进类型里，让&lt;strong&gt;编译器在编译期替你检查&lt;/strong&gt;。Scala 3 的 &lt;strong&gt;Match Types&lt;/strong&gt; 与 given/using 推导把它从炫技变成可用的生产力工具。本文从字面量类型讲起，到类型级函数（Nat/布尔/列表）、Match Types、类型类推导，再进入 Shapeless 的 HList/Coproduct 泛型推导，最后落地到类型安全状态机与编译期校验，并讨论性能陷阱与调试。&lt;/p&gt;</description></item></channel></rss>