星耀对象
Star 的字段与亮度、四化判断,以及回溯所在宫的能力。
Star 是一颗落在某宫的星,带着它的类型、亮度与四化标记,并能回溯所在宫。
ziwei, palace := chart.Star(iztro.StarZiweiMaj)本页示例统一用 "zh-CN" 排盘,因此输出里的展示值都是中文。
字段
| 字段 | 类型 | 说明 |
|---|---|---|
Key | string | 星耀标识,与语言无关,判断时用它 |
Name | string | 星名,按排盘语言翻译 |
Type | string | 星耀类型,见下表 |
Scope | string | 作用范围:本命星为 "origin",流耀为对应运限层级 |
Brightness | string | 亮度译名;没有亮度表的星耀为空串 |
BrightnessKey | string | 亮度标识 |
Mutagen | string | 生年四化译名;未被生年干化的星为空串 |
MutagenKey | string | 四化标识 |
星耀类型的八个取值
| 取值 | 含义 | 典型成员 |
|---|---|---|
major | 十四主星 | 紫微、天府、七杀、破军 |
soft | 吉星 | 左辅、右弼、文昌、文曲、天魁、天钺 |
tough | 煞星 | 擎羊、陀罗、火星、铃星、地空、地劫 |
adjective | 杂耀 | 三台、八座、天刑、天姚 |
flower | 桃花星 | 红鸾、天喜、咸池 |
helper | 解神 | 解神 |
lucun | 禄存 | 禄存 |
tianma | 天马 | 天马 |
禄存与天马各自独占一类,因为它们在传统分法里既非纯吉也非纯煞,判断时常单独拎出来。
空串而非 nil
Go 侧用空串表示「没有」——Brightness 为空串即该星没有亮度表,
Mutagen 为空串即未被生年干化。判空写 if star.MutagenKey != ""。
WithBrightness
用途 判断这颗星是否处于给定亮度之一。
斗数含义 亮度(庙旺得利平不陷)描述星耀在该宫位的强弱。 同一颗星在十二宫各有定值,庙旺则力量充分发挥,落陷则受制。
签名
func (s *Star) WithBrightness(brightnessKeys ...string) bool参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
brightnessKeys | ...string | 是 | — | 亮度标识,命中任一即为真 |
返回值 bool。该星无亮度时恒为假。
示例
ziwei, _ := chart.Star(iztro.StarZiweiMaj)
fmt.Println(ziwei.WithBrightness(iztro.BrightnessMiao))
fmt.Println(ziwei.WithBrightness(iztro.BrightnessWang, iztro.BrightnessDe))输出
true
false边界与陷阱
语义是「命中任一」而非「全部命中」——一颗星只有一个亮度, 传多个只表示「是其中之一即可」。
WithMutagen
用途 判断这颗星是否带指定的生年四化。
斗数含义 生年四化由出生年干决定,一年固定四颗星分别化禄、权、科、忌。 这个标记跟着星走,无论那颗星落在哪一宫。
签名
func (s *Star) WithMutagen(mutagenKeys ...string) bool参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
mutagenKeys | ...string | 是 | — | 四化标识,命中任一即为真 |
返回值 bool。该星未被生年干化时恒为假。
示例
ziwei, _ := chart.Star(iztro.StarZiweiMaj)
taiyang, _ := chart.Star(iztro.StarTaiyangMaj)
fmt.Println("紫微化禄:", ziwei.WithMutagen(iztro.MutagenLu))
fmt.Println("太阳化禄:", taiyang.WithMutagen(iztro.MutagenLu))输出
紫微化禄: false
太阳化禄: true这张盘生年干为庚,庚干太阳化禄,因此标记落在太阳而非紫微。
边界与陷阱
生年四化与飞星四化不是一回事
WithMutagen 看的是生年干给这颗星打的标记,一张盘上只有四颗星带标记。
宫干飞出的四化不在这里体现,用宫位的 FliesTo 一族。
Palace / OppositePalace / SurroundedPalaces
用途 从星回溯到它所在的宫、该宫的对宫与三方四正。
签名
func (s *Star) Palace() *Palace
func (s *Star) OppositePalace() *Palace
func (s *Star) SurroundedPalaces() *SurroundedPalaces返回值 脱离星盘单独构造的星耀返回 nil;由星盘查询得到的星耀必然非空。
示例
ziwei, _ := chart.Star(iztro.StarZiweiMaj)
fmt.Println(ziwei.Palace().Name)
fmt.Println(ziwei.OppositePalace().Name)
fmt.Println("同宫或三方见天相:",
ziwei.SurroundedPalaces().Have(iztro.StarTianxiangMaj))输出
命宫
迁移
同宫或三方见天相: true边界与陷阱
chart.Star() 已经把所在宫作为第二个返回值给出,
通常不必再调 ziwei.Palace()。